lb: Loadbalancer plugin, correctly rewrite checksum in L3DSR, non-TCP cases
lb: Loadbalancer plugin, correctly rewrite checksum in L3DSR, non-TCP cases

Current loadbalancer seems to rewrite the 17th and 18th octet of L4 header regardless of which kind of L4 protocol is used in case of L3DSR.

In case UDP, it rewrites 9th and 10th octet of payload (because UDP header is 8 octets long). If UDP payload is less than 8 octets, UDP checksum becomes invalid.

In other protocols similar problems is likely to occue.

This patch checks which L4 protocol is used, and rewrite packet regarding the L4 protocol.

Signed-off-by: Hiroki Narukawa <1afec0e0ee0bbde7bf96cddb5d20fcf9664c16f6@nhiroki.net>
Change-Id: I84390ff58a33f05efac0421856beea89014adc72
Type: fix

FDio/vpp,chrisy/vpp,chrisy/vpp,chrisy/vpp,FDio/vpp,FDio/vpp,FDio/vpp,FDio/vpp,FDio/vpp,chrisy/vpp,chrisy/vpp,FDio/vpp,chrisy/vpp,chrisy/vpp,FDio/vpp,chrisy/vpp