This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via 984686b0763495c6dd97d2094f292fc7e01937d0 (commit) from e678e44fe99ada59b80097f97e22b0546bcdadc8 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 984686b0763495c6dd97d2094f292fc7e01937d0 Author: Balasubramanian Manoharan bala.manoharan@linaro.org Date: Tue Jan 23 15:15:55 2018 +0530
linux-gen: cls: fix: incorrect rss hash calculation
updates incorrect operator precedence updates v4 to v6 tuple in ipv6 hash generation
Fixes: https://bugs.linaro.org/show_bug.cgi?id=3582 Fixes: https://bugs.linaro.org/show_bug.cgi?id=3581
Signed-off-by: Balasubramanian Manoharan bala.manoharan@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c index df49d0e4..668b41eb 100644 --- a/platform/linux-generic/odp_classification.c +++ b/platform/linux-generic/odp_classification.c @@ -1026,8 +1026,8 @@ static uint32_t packet_rss_hash(odp_packet_hdr_t *pkt_hdr, if (pkt_hdr->p.input_flags.ipv4) { if (hash_proto.ipv4) { /* add ipv4 */ - ipv4 = (const _odp_ipv4hdr_t *)base + - pkt_hdr->p.l3_offset; + ipv4 = (const _odp_ipv4hdr_t *)(base + + pkt_hdr->p.l3_offset); tuple.v4.src_addr = ipv4->src_addr; tuple.v4.dst_addr = ipv4->dst_addr; tuple_len += 2; @@ -1035,15 +1035,15 @@ static uint32_t packet_rss_hash(odp_packet_hdr_t *pkt_hdr,
if (pkt_hdr->p.input_flags.tcp && hash_proto.tcp) { /* add tcp */ - tcp = (const _odp_tcphdr_t *)base + - pkt_hdr->p.l4_offset; + tcp = (const _odp_tcphdr_t *)(base + + pkt_hdr->p.l4_offset); tuple.v4.sport = tcp->src_port; tuple.v4.dport = tcp->dst_port; tuple_len += 1; } else if (pkt_hdr->p.input_flags.udp && hash_proto.udp) { /* add udp */ - udp = (const _odp_udphdr_t *)base + - pkt_hdr->p.l4_offset; + udp = (const _odp_udphdr_t *)(base + + pkt_hdr->p.l4_offset); tuple.v4.sport = udp->src_port; tuple.v4.dport = udp->dst_port; tuple_len += 1; @@ -1051,23 +1051,23 @@ static uint32_t packet_rss_hash(odp_packet_hdr_t *pkt_hdr, } else if (pkt_hdr->p.input_flags.ipv6) { if (hash_proto.ipv6) { /* add ipv6 */ - ipv6 = (const _odp_ipv6hdr_t *)base + - pkt_hdr->p.l3_offset; + ipv6 = (const _odp_ipv6hdr_t *)(base + + pkt_hdr->p.l3_offset); thash_load_ipv6_addr(ipv6, &tuple); tuple_len += 8; } if (pkt_hdr->p.input_flags.tcp && hash_proto.tcp) { - tcp = (const _odp_tcphdr_t *)base + - pkt_hdr->p.l4_offset; - tuple.v4.sport = tcp->src_port; - tuple.v4.dport = tcp->dst_port; + tcp = (const _odp_tcphdr_t *)(base + + pkt_hdr->p.l4_offset); + tuple.v6.sport = tcp->src_port; + tuple.v6.dport = tcp->dst_port; tuple_len += 1; } else if (pkt_hdr->p.input_flags.udp && hash_proto.udp) { /* add udp */ - udp = (const _odp_udphdr_t *)base + - pkt_hdr->p.l4_offset; - tuple.v4.sport = udp->src_port; - tuple.v4.dport = udp->dst_port; + udp = (const _odp_udphdr_t *)(base + + pkt_hdr->p.l4_offset); + tuple.v6.sport = udp->src_port; + tuple.v6.dport = udp->dst_port; tuple_len += 1; } }
-----------------------------------------------------------------------
Summary of changes: platform/linux-generic/odp_classification.c | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-)
hooks/post-receive