examples/l3fwd: fix size of destination port ids
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Thu, 31 Mar 2016 13:07:19 +0000 (14:07 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 31 Mar 2016 20:56:00 +0000 (22:56 +0200)
commit8353a36a9b4b0766d4f3433fa6ad8fd41cb60bbc
tree3323bdecf4bdbce2e64e2c2fb60dec9c10ca41d7
parent9d203b76af2a4b310fdf3068e181ff52194bf7a8
examples/l3fwd: fix size of destination port ids

Originally l3fwd used 16-bit value to store dest_port value.
To accommodate 24-bit nexthop dest_port was increased to 32-bit,
though some further packet processing code remained unchanged and
still expects dest_port to be 16-bit.
That is not correct and can cause l3fwd invalid behaviour or even
process crash/hang on some input packet patterns.
For the fix, I choose the simplest approach and restored dest_port
as 16-bit value, plus necessary conversions from 32 to 16 bit values
after lpm_lookupx4.

Fixes: dc81ebbacaeb ("lpm: extend IPv4 next hop field")

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
examples/l3fwd/l3fwd_em_hlm_sse.h
examples/l3fwd/l3fwd_em_sse.h
examples/l3fwd/l3fwd_lpm.h
examples/l3fwd/l3fwd_lpm_sse.h
examples/l3fwd/l3fwd_sse.h