The keylen is not properly updated in the case of MPLS, directly causing the
hash to be calculated improperly.
Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Acked-by: Sairam Venugopal <vsairam@vmware.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
#define OVS_IPV6_KEY_SIZE (sizeof (Ipv6Key))
#define OVS_ARP_KEY_SIZE (sizeof (ArpKey))
#define OVS_ICMPV6_KEY_SIZE (sizeof (Icmp6Key))
+#define OVS_MPLS_KEY_SIZE (sizeof (MplsKey))
typedef struct OvsFlowStats {
Ovs64AlignedU64 packetCount;
const MPLSHdr *mpls;
MplsKey *mplsKey = &flow->mplsKey;
((UINT64 *)mplsKey)[0] = 0;
+ flow->l2.keyLen += OVS_MPLS_KEY_SIZE;
/*
* In the presence of an MPLS label stack the end of the L2