Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1721044 > unrolled thread
| Started by | Samuel Mendoza-Jonas <sam@mendozajonas.com> |
|---|---|
| First post | 2017-08-28 08:20 +0200 |
| Last post | 2017-08-30 07:40 +0200 |
| Articles | 5 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH net-next v3 0/3] NCSI VLAN Filtering Support Samuel Mendoza-Jonas <sam@mendozajonas.com> - 2017-08-28 08:20 +0200
[PATCH net-next v3 1/3] net/ncsi: Fix several packet definitions Samuel Mendoza-Jonas <sam@mendozajonas.com> - 2017-08-28 08:20 +0200
Re: [PATCH net-next v3 0/3] NCSI VLAN Filtering Support David Miller <davem@davemloft.net> - 2017-08-29 02:00 +0200
Re: [PATCH net-next v3 0/3] NCSI VLAN Filtering Support Samuel Mendoza-Jonas <sam@mendozajonas.com> - 2017-08-30 06:40 +0200
Re: [PATCH net-next v3 0/3] NCSI VLAN Filtering Support David Miller <davem@davemloft.net> - 2017-08-30 07:40 +0200
| From | Samuel Mendoza-Jonas <sam@mendozajonas.com> |
|---|---|
| Date | 2017-08-28 08:20 +0200 |
| Subject | [PATCH net-next v3 0/3] NCSI VLAN Filtering Support |
| Message-ID | <ujlyW-1YD-5@gated-at.bofh.it> |
This series (mainly patch 2) adds VLAN filtering to the NCSI implementation. A fair amount of code already exists in the NCSI stack for VLAN filtering but none of it is actually hooked up. This goes the final mile and fixes a few bugs in the existing code found along the way (patch 1). Patch 3 adds the appropriate flag and callbacks to the ftgmac100 driver to enable filtering as it's a large consumer of NCSI (and what I've been testing on). v3: - Add comment describing change to ncsi_find_filter() - Catch NULL in clear_one_vid() from ncsi_get_filter() - Simplify state changes when kicking updated channel Samuel Mendoza-Jonas (3): net/ncsi: Fix several packet definitions net/ncsi: Configure VLAN tag filter ftgmac100: Support NCSI VLAN filtering when available drivers/net/ethernet/faraday/ftgmac100.c | 5 + include/net/ncsi.h | 2 + net/ncsi/internal.h | 11 ++ net/ncsi/ncsi-cmd.c | 10 +- net/ncsi/ncsi-manage.c | 308 ++++++++++++++++++++++++++++++- net/ncsi/ncsi-pkt.h | 2 +- net/ncsi/ncsi-rsp.c | 12 +- 7 files changed, 339 insertions(+), 11 deletions(-) -- 2.14.0
[toc] | [next] | [standalone]
| From | Samuel Mendoza-Jonas <sam@mendozajonas.com> |
|---|---|
| Date | 2017-08-28 08:20 +0200 |
| Subject | [PATCH net-next v3 1/3] net/ncsi: Fix several packet definitions |
| Message-ID | <ujlyW-1YD-15@gated-at.bofh.it> |
| In reply to | #1721044 |
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
---
v2: Rebased on latest net-next
net/ncsi/ncsi-cmd.c | 10 +++++-----
net/ncsi/ncsi-pkt.h | 2 +-
net/ncsi/ncsi-rsp.c | 3 ++-
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/net/ncsi/ncsi-cmd.c b/net/ncsi/ncsi-cmd.c
index 5e03ed190e18..7567ca63aae2 100644
--- a/net/ncsi/ncsi-cmd.c
+++ b/net/ncsi/ncsi-cmd.c
@@ -139,9 +139,9 @@ static int ncsi_cmd_handler_svf(struct sk_buff *skb,
struct ncsi_cmd_svf_pkt *cmd;
cmd = skb_put_zero(skb, sizeof(*cmd));
- cmd->vlan = htons(nca->words[0]);
- cmd->index = nca->bytes[2];
- cmd->enable = nca->bytes[3];
+ cmd->vlan = htons(nca->words[1]);
+ cmd->index = nca->bytes[6];
+ cmd->enable = nca->bytes[7];
ncsi_cmd_build_header(&cmd->cmd.common, nca);
return 0;
@@ -153,7 +153,7 @@ static int ncsi_cmd_handler_ev(struct sk_buff *skb,
struct ncsi_cmd_ev_pkt *cmd;
cmd = skb_put_zero(skb, sizeof(*cmd));
- cmd->mode = nca->bytes[0];
+ cmd->mode = nca->bytes[3];
ncsi_cmd_build_header(&cmd->cmd.common, nca);
return 0;
@@ -228,7 +228,7 @@ static struct ncsi_cmd_handler {
{ NCSI_PKT_CMD_AE, 8, ncsi_cmd_handler_ae },
{ NCSI_PKT_CMD_SL, 8, ncsi_cmd_handler_sl },
{ NCSI_PKT_CMD_GLS, 0, ncsi_cmd_handler_default },
- { NCSI_PKT_CMD_SVF, 4, ncsi_cmd_handler_svf },
+ { NCSI_PKT_CMD_SVF, 8, ncsi_cmd_handler_svf },
{ NCSI_PKT_CMD_EV, 4, ncsi_cmd_handler_ev },
{ NCSI_PKT_CMD_DV, 0, ncsi_cmd_handler_default },
{ NCSI_PKT_CMD_SMA, 8, ncsi_cmd_handler_sma },
diff --git a/net/ncsi/ncsi-pkt.h b/net/ncsi/ncsi-pkt.h
index 3ea49ed0a935..91b4b66438df 100644
--- a/net/ncsi/ncsi-pkt.h
+++ b/net/ncsi/ncsi-pkt.h
@@ -104,7 +104,7 @@ struct ncsi_cmd_svf_pkt {
unsigned char index; /* VLAN table index */
unsigned char enable; /* Enable or disable */
__be32 checksum; /* Checksum */
- unsigned char pad[14];
+ unsigned char pad[18];
};
/* Enable VLAN */
diff --git a/net/ncsi/ncsi-rsp.c b/net/ncsi/ncsi-rsp.c
index 087db775b3dc..c1a191d790e2 100644
--- a/net/ncsi/ncsi-rsp.c
+++ b/net/ncsi/ncsi-rsp.c
@@ -354,7 +354,8 @@ static int ncsi_rsp_handler_svf(struct ncsi_request *nr)
/* Add or remove the VLAN filter */
if (!(cmd->enable & 0x1)) {
- ret = ncsi_remove_filter(nc, NCSI_FILTER_VLAN, cmd->index);
+ /* HW indexes from 1 */
+ ret = ncsi_remove_filter(nc, NCSI_FILTER_VLAN, cmd->index - 1);
} else {
vlan = ntohs(cmd->vlan);
ret = ncsi_add_filter(nc, NCSI_FILTER_VLAN, &vlan);
--
2.14.0
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2017-08-29 02:00 +0200 |
| Message-ID | <ujC6K-3w2-9@gated-at.bofh.it> |
| In reply to | #1721044 |
From: Samuel Mendoza-Jonas <sam@mendozajonas.com> Date: Mon, 28 Aug 2017 16:18:40 +1000 > This series (mainly patch 2) adds VLAN filtering to the NCSI implementation. > A fair amount of code already exists in the NCSI stack for VLAN filtering but > none of it is actually hooked up. This goes the final mile and fixes a few > bugs in the existing code found along the way (patch 1). > > Patch 3 adds the appropriate flag and callbacks to the ftgmac100 driver to > enable filtering as it's a large consumer of NCSI (and what I've been > testing on). > > v3: - Add comment describing change to ncsi_find_filter() > - Catch NULL in clear_one_vid() from ncsi_get_filter() > - Simplify state changes when kicking updated channel Series applied.
[toc] | [prev] | [next] | [standalone]
| From | Samuel Mendoza-Jonas <sam@mendozajonas.com> |
|---|---|
| Date | 2017-08-30 06:40 +0200 |
| Message-ID | <uk2Xf-3FD-1@gated-at.bofh.it> |
| In reply to | #1722069 |
On Mon, 2017-08-28 at 16:50 -0700, David Miller wrote:
> From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
> Date: Mon, 28 Aug 2017 16:18:40 +1000
>
> > This series (mainly patch 2) adds VLAN filtering to the NCSI implementation.
> > A fair amount of code already exists in the NCSI stack for VLAN filtering but
> > none of it is actually hooked up. This goes the final mile and fixes a few
> > bugs in the existing code found along the way (patch 1).
> >
> > Patch 3 adds the appropriate flag and callbacks to the ftgmac100 driver to
> > enable filtering as it's a large consumer of NCSI (and what I've been
> > testing on).
> >
> > v3: - Add comment describing change to ncsi_find_filter()
> > - Catch NULL in clear_one_vid() from ncsi_get_filter()
> > - Simplify state changes when kicking updated channel
>
> Series applied.
Thanks David,
The kbuild bot caught a build error where the add/kill callbacks aren't
defined without CONFIG_NET_NCSI:
>> ERROR: "ncsi_vlan_rx_kill_vid" [drivers/net/ethernet/faraday/ftgmac100.ko] undefined!
>> ERROR: "ncsi_vlan_rx_add_vid" [drivers/net/ethernet/faraday/ftgmac100.ko] undefined!
It's a quick fixup to patch 3 as below, would you like me to send it as a v4?
diff --git a/include/net/ncsi.h b/include/net/ncsi.h
index 1f96af46df49..2b13b6b91a4d 100644
--- a/include/net/ncsi.h
+++ b/include/net/ncsi.h
@@ -36,6 +36,14 @@ int ncsi_start_dev(struct ncsi_dev *nd);
void ncsi_stop_dev(struct ncsi_dev *nd);
void ncsi_unregister_dev(struct ncsi_dev *nd);
#else /* !CONFIG_NET_NCSI */
+int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
+{
+ return -ENOTTY;
+}
+int ncsi_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)
+{
+ return -ENOTTY;
+}
static inline struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
void (*notifier)(struct ncsi_dev *nd))
{
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2017-08-30 07:40 +0200 |
| Message-ID | <uk3Tj-4ey-1@gated-at.bofh.it> |
| In reply to | #1723021 |
From: Samuel Mendoza-Jonas <sam@mendozajonas.com> Date: Wed, 30 Aug 2017 14:37:21 +1000 > On Mon, 2017-08-28 at 16:50 -0700, David Miller wrote: >> From: Samuel Mendoza-Jonas <sam@mendozajonas.com> >> Date: Mon, 28 Aug 2017 16:18:40 +1000 >> >> > This series (mainly patch 2) adds VLAN filtering to the NCSI implementation. >> > A fair amount of code already exists in the NCSI stack for VLAN filtering but >> > none of it is actually hooked up. This goes the final mile and fixes a few >> > bugs in the existing code found along the way (patch 1). >> > >> > Patch 3 adds the appropriate flag and callbacks to the ftgmac100 driver to >> > enable filtering as it's a large consumer of NCSI (and what I've been >> > testing on). >> > >> > v3: - Add comment describing change to ncsi_find_filter() >> > - Catch NULL in clear_one_vid() from ncsi_get_filter() >> > - Simplify state changes when kicking updated channel >> >> Series applied. > > Thanks David, > > The kbuild bot caught a build error where the add/kill callbacks aren't > defined without CONFIG_NET_NCSI: > >>> ERROR: "ncsi_vlan_rx_kill_vid" [drivers/net/ethernet/faraday/ftgmac100.ko] undefined! >>> ERROR: "ncsi_vlan_rx_add_vid" [drivers/net/ethernet/faraday/ftgmac100.ko] undefined! > > It's a quick fixup to patch 3 as below, would you like me to send it as a v4? You must submit a formal fixup patch to fix bugs if I've said that I've already applied your patch.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web