diff options
author | Christian Ehrhardt <christian.ehrhardt@canonical.com> | 2019-02-26 09:17:37 +0100 |
---|---|---|
committer | Christian Ehrhardt <christian.ehrhardt@canonical.com> | 2019-02-26 09:21:27 +0100 |
commit | 597cb1874068054d4c0be41f161a72ef37888930 (patch) | |
tree | 8899c19634bd8e393a8eac05f33925e4d75bd77d /drivers/net/qede/qede_fdir.c | |
parent | 6e7cbd63706f3435b9d9a2057a37db1da01db9a7 (diff) |
New upstream version 17.11.5upstream-17.11-stable
Change-Id: I8d2aa1aee2a9a78614dff5a01008f91e88e810c7
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Diffstat (limited to 'drivers/net/qede/qede_fdir.c')
-rw-r--r-- | drivers/net/qede/qede_fdir.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/qede/qede_fdir.c b/drivers/net/qede/qede_fdir.c index 05152566..050b7376 100644 --- a/drivers/net/qede/qede_fdir.c +++ b/drivers/net/qede/qede_fdir.c @@ -18,6 +18,7 @@ #define QEDE_FDIR_IP_DEFAULT_VERSION_IHL (IP_VERSION | IP_HDRLEN) #define QEDE_FDIR_TCP_DEFAULT_DATAOFF (0x50) #define QEDE_FDIR_IPV4_DEF_TTL (64) +#define QEDE_FDIR_IPV6_DEFAULT_VTC_FLOW (0x60000000) /* Sum of length of header types of L2, L3, L4. * L2 : ether_hdr + vlan_hdr + vxlan_hdr @@ -340,18 +341,21 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev, ip6->proto = input->flow.ipv6_flow.proto ? input->flow.ipv6_flow.proto : next_proto[input->flow_type]; - rte_memcpy(&ip6->src_addr, &input->flow.ipv6_flow.dst_ip, + ip6->vtc_flow = + rte_cpu_to_be_32(QEDE_FDIR_IPV6_DEFAULT_VTC_FLOW); + rte_memcpy(&ip6->src_addr, &input->flow.ipv6_flow.src_ip, IPV6_ADDR_LEN); - rte_memcpy(&ip6->dst_addr, &input->flow.ipv6_flow.src_ip, + rte_memcpy(&ip6->dst_addr, &input->flow.ipv6_flow.dst_ip, IPV6_ADDR_LEN); len += sizeof(struct ipv6_hdr); + params->ipv6 = true; raw_pkt = (uint8_t *)buff; /* UDP */ if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV6_UDP) { udp = (struct udp_hdr *)(raw_pkt + len); - udp->src_port = input->flow.udp6_flow.dst_port; - udp->dst_port = input->flow.udp6_flow.src_port; + udp->src_port = input->flow.udp6_flow.src_port; + udp->dst_port = input->flow.udp6_flow.dst_port; len += sizeof(struct udp_hdr); params->udp = true; } else { /* TCP */ |