* [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS. @ 2012-03-06 1:18 greearb 2012-03-06 1:18 ` [PATCH 2/2] ixgbe: Support RX-ALL feature flag greearb 2012-03-06 1:34 ` [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS Jeff Kirsher 0 siblings, 2 replies; 3+ messages in thread From: greearb @ 2012-03-06 1:18 UTC (permalink / raw) To: netdev; +Cc: jeffrey.t.kirsher, Ben Greear From: Ben Greear <greearb@candelatech.com> Including bad FCS, used generate frames with bad FCS to test other system's handling of RX of bad packets. Signed-off-by: Ben Greear <greearb@candelatech.com> --- :100644 100644 23a4665... b6e51f9... M drivers/net/ethernet/intel/ixgbe/ixgbe_main.c drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 23a4665..b6e51f9 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6754,6 +6754,8 @@ static void ixgbe_tx_map(struct ixgbe_ring *tx_ring, tx_buffer_info->dma = dma; tx_desc->read.buffer_addr = cpu_to_le64(dma + offset); + if (unlikely(skb->no_fcs)) + cmd_type &= ~(cpu_to_le32(IXGBE_ADVTXD_DCMD_IFCS)); tx_desc->read.cmd_type_len = cmd_type | cpu_to_le32(size); tx_desc->read.olinfo_status = olinfo_status; @@ -7762,6 +7764,7 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, netdev->vlan_features |= NETIF_F_SG; netdev->priv_flags |= IFF_UNICAST_FLT; + netdev->priv_flags |= IFF_SUPP_NOFCS; if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) adapter->flags &= ~(IXGBE_FLAG_RSS_ENABLED | -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] ixgbe: Support RX-ALL feature flag. 2012-03-06 1:18 [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS greearb @ 2012-03-06 1:18 ` greearb 2012-03-06 1:34 ` [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS Jeff Kirsher 1 sibling, 0 replies; 3+ messages in thread From: greearb @ 2012-03-06 1:18 UTC (permalink / raw) To: netdev; +Cc: jeffrey.t.kirsher, Ben Greear From: Ben Greear <greearb@candelatech.com> This allows the NIC to receive all frames available, including those with bad FCS, ethernet control frames, and more. Tested by sending frames with bad FCS. Signed-off-by: Ben Greear <greearb@candelatech.com> --- :100644 100644 b6e51f9... c32be9d... M drivers/net/ethernet/intel/ixgbe/ixgbe_main.c drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index b6e51f9..c32be9d 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -1605,7 +1605,8 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector, /* ERR_MASK will only have valid bits if EOP set */ if (unlikely(ixgbe_test_staterr(rx_desc, - IXGBE_RXDADV_ERR_FRAME_ERR_MASK))) { + IXGBE_RXDADV_ERR_FRAME_ERR_MASK) && + !(adapter->netdev->features & NETIF_F_RXALL))) { dev_kfree_skb_any(skb); goto next_desc; } @@ -3441,6 +3442,7 @@ void ixgbe_set_rx_mode(struct net_device *netdev) fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); /* set all bits that we expect to always be set */ + fctrl &= ~IXGBE_FCTRL_SBP; /* disable store-bad-packets */ fctrl |= IXGBE_FCTRL_BAM; fctrl |= IXGBE_FCTRL_DPF; /* discard pause frames when FC enabled */ fctrl |= IXGBE_FCTRL_PMCF; @@ -3489,6 +3491,18 @@ void ixgbe_set_rx_mode(struct net_device *netdev) IXGBE_WRITE_REG(hw, IXGBE_VMOLR(adapter->num_vfs), vmolr); } + /* This is useful for sniffing bad packets. */ + if (adapter->netdev->features & NETIF_F_RXALL) { + /* UPE and MPE will be handled by normal PROMISC logic + * in e1000e_set_rx_mode */ + fctrl |= (IXGBE_FCTRL_SBP | /* Receive bad packets */ + IXGBE_FCTRL_BAM | /* RX All Bcast Pkts */ + IXGBE_FCTRL_PMCF); /* RX All MAC Ctrl Pkts */ + + fctrl &= ~(IXGBE_FCTRL_DPF); + /* NOTE: VLAN filtering is disabled by setting PROMISC */ + } + IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); if (netdev->features & NETIF_F_HW_VLAN_RX) @@ -7443,6 +7457,7 @@ static int ixgbe_set_features(struct net_device *netdev, netdev_features_t data) { struct ixgbe_adapter *adapter = netdev_priv(netdev); + netdev_features_t changed = netdev->features ^ data; bool need_reset = false; /* Make sure RSC matches LRO, reset if change */ @@ -7479,6 +7494,10 @@ static int ixgbe_set_features(struct net_device *netdev, need_reset = true; } + if (changed & NETIF_F_RXALL) + need_reset = true; + + netdev->features = data; if (need_reset) ixgbe_do_reset(netdev); @@ -7757,6 +7776,8 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, break; } + netdev->hw_features |= NETIF_F_RXALL; + netdev->vlan_features |= NETIF_F_TSO; netdev->vlan_features |= NETIF_F_TSO6; netdev->vlan_features |= NETIF_F_IP_CSUM; -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS. 2012-03-06 1:18 [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS greearb 2012-03-06 1:18 ` [PATCH 2/2] ixgbe: Support RX-ALL feature flag greearb @ 2012-03-06 1:34 ` Jeff Kirsher 1 sibling, 0 replies; 3+ messages in thread From: Jeff Kirsher @ 2012-03-06 1:34 UTC (permalink / raw) To: greearb; +Cc: netdev [-- Attachment #1: Type: text/plain, Size: 556 bytes --] On Mon, 2012-03-05 at 17:18 -0800, greearb@candelatech.com wrote: > From: Ben Greear <greearb@candelatech.com> > > Including bad FCS, used generate frames with bad FCS > to test other system's handling of RX of bad packets. > > Signed-off-by: Ben Greear <greearb@candelatech.com> > --- > :100644 100644 23a4665... b6e51f9... > M drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) Thanks Ben, I have added this series to my queue! [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-03-06 1:34 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-03-06 1:18 [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS greearb 2012-03-06 1:18 ` [PATCH 2/2] ixgbe: Support RX-ALL feature flag greearb 2012-03-06 1:34 ` [PATCH 1/2] ixgbe: Support sending custom Ethernet FCS Jeff Kirsher
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).