From 492a028c659c3d34900eccb33a347243d28dcd77 Mon Sep 17 00:00:00 2001 From: Jingjing Wu Date: Tue, 7 Jul 2015 15:58:31 +0800 Subject: [PATCH] i40e: fix SCTP flow director Due to the NIC's firmware update, the input set of sctp flow is changed to source IP, destination IP, source port, destination port and Verification-Tag. This patch adds the sport and dport in the programming packet of flow director. Signed-off-by: Jingjing Wu Tested-by: Marvin Liu --- drivers/net/i40e/i40e_fdir.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c index 66e5961fbc..8208273347 100644 --- a/drivers/net/i40e/i40e_fdir.c +++ b/drivers/net/i40e/i40e_fdir.c @@ -822,6 +822,15 @@ i40e_fdir_construct_pkt(struct i40e_pf *pf, sctp = (struct sctp_hdr *)(raw_pkt + sizeof(struct ether_hdr) + sizeof(struct ipv4_hdr)); payload = (unsigned char *)sctp + sizeof(struct sctp_hdr); +#ifdef RTE_NEXT_ABI + /* + * The source and destination fields in the transmitted packet + * need to be presented in a reversed order with respect + * to the expected received packets. + */ + sctp->src_port = fdir_input->flow.sctp4_flow.dst_port; + sctp->dst_port = fdir_input->flow.sctp4_flow.src_port; +#endif sctp->tag = fdir_input->flow.sctp4_flow.verify_tag; break; @@ -864,6 +873,15 @@ i40e_fdir_construct_pkt(struct i40e_pf *pf, sctp = (struct sctp_hdr *)(raw_pkt + sizeof(struct ether_hdr) + sizeof(struct ipv6_hdr)); payload = (unsigned char *)sctp + sizeof(struct sctp_hdr); +#ifdef RTE_NEXT_ABI + /* + * The source and destination fields in the transmitted packet + * need to be presented in a reversed order with respect + * to the expected received packets. + */ + sctp->src_port = fdir_input->flow.sctp6_flow.dst_port; + sctp->dst_port = fdir_input->flow.sctp6_flow.src_port; +#endif sctp->tag = fdir_input->flow.sctp6_flow.verify_tag; break; -- 2.20.1