igb: add IPv6 extended headers traffic detection
Signed-off-by: Tomasz Dzieciol <t.dzieciol@partner.samsung.com> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> Tested-by: Akihiko Odaki <akihiko.odaki@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
17ccd01647
commit
1c4e67a5be
@ -1420,7 +1420,9 @@ igb_rx_desc_get_packet_type(IGBCore *core, struct NetRxPkt *pkt, uint16_t etqf)
|
|||||||
net_rx_pkt_get_protocols(pkt, &hasip4, &hasip6, &l4hdr_proto);
|
net_rx_pkt_get_protocols(pkt, &hasip4, &hasip6, &l4hdr_proto);
|
||||||
|
|
||||||
if (hasip6 && !(core->mac[RFCTL] & E1000_RFCTL_IPV6_DIS)) {
|
if (hasip6 && !(core->mac[RFCTL] & E1000_RFCTL_IPV6_DIS)) {
|
||||||
pkt_type = E1000_ADVRXD_PKT_IP6;
|
eth_ip6_hdr_info *ip6hdr_info = net_rx_pkt_get_ip6_info(pkt);
|
||||||
|
pkt_type = ip6hdr_info->has_ext_hdrs ? E1000_ADVRXD_PKT_IP6E :
|
||||||
|
E1000_ADVRXD_PKT_IP6;
|
||||||
} else if (hasip4) {
|
} else if (hasip4) {
|
||||||
pkt_type = E1000_ADVRXD_PKT_IP4;
|
pkt_type = E1000_ADVRXD_PKT_IP4;
|
||||||
} else {
|
} else {
|
||||||
|
@ -694,6 +694,7 @@ union e1000_adv_rx_desc {
|
|||||||
|
|
||||||
#define E1000_ADVRXD_PKT_IP4 BIT(0)
|
#define E1000_ADVRXD_PKT_IP4 BIT(0)
|
||||||
#define E1000_ADVRXD_PKT_IP6 BIT(2)
|
#define E1000_ADVRXD_PKT_IP6 BIT(2)
|
||||||
|
#define E1000_ADVRXD_PKT_IP6E BIT(3)
|
||||||
#define E1000_ADVRXD_PKT_TCP BIT(4)
|
#define E1000_ADVRXD_PKT_TCP BIT(4)
|
||||||
#define E1000_ADVRXD_PKT_UDP BIT(5)
|
#define E1000_ADVRXD_PKT_UDP BIT(5)
|
||||||
#define E1000_ADVRXD_PKT_SCTP BIT(6)
|
#define E1000_ADVRXD_PKT_SCTP BIT(6)
|
||||||
|
Loading…
Reference in New Issue
Block a user