Thanks for addressing the issue! Acked-by: Eitan Eliahu <elia...@vmware.com> Eitan
-----Original Message----- From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Alin Serdean Sent: Monday, July 13, 2015 9:59 AM To: dev@openvswitch.org Subject: [ovs-dev] [PATCH v2] datapath-windows: Update VXLAN header information Use tunnel key information on the IP header preceding the VXLAN header. Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> --- v2: use separate variable to store the number of transmitted bytes --- datapath-windows/ovsext/Vxlan.c | 13 ++++++++----- datapath-windows/ovsext/Vxlan.h | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/datapath-windows/ovsext/Vxlan.c b/datapath-windows/ovsext/Vxlan.c index f43805a..4c44a54 100644 --- a/datapath-windows/ovsext/Vxlan.c +++ b/datapath-windows/ovsext/Vxlan.c @@ -15,6 +15,7 @@ */ #include "precomp.h" +#include "Atomic.h" #include "NetProto.h" #include "Switch.h" #include "Vport.h" @@ -263,11 +264,13 @@ OvsDoEncapVxlan(POVS_VPORT_ENTRY vport, ipHdr = (IPHdr *)((PCHAR)ethHdr + sizeof *ethHdr); ipHdr->ihl = sizeof *ipHdr / 4; - ipHdr->version = IPV4; - ipHdr->tos = 0; + ipHdr->version = IPPROTO_IPV4; + ipHdr->tos = tunKey->tos; ipHdr->tot_len = htons(NET_BUFFER_DATA_LENGTH(curNb) - sizeof *ethHdr); - ipHdr->id = 0; - ipHdr->frag_off = IP_DF_NBO; + ipHdr->id = (uint16)atomic_add64(&vportVxlan->ipId, + NET_BUFFER_DATA_LENGTH(curNb)); + ipHdr->frag_off = (tunKey->flags & OVS_TNL_F_DONT_FRAGMENT) ? + IP_DF_NBO : 0; ipHdr->ttl = tunKey->ttl ? tunKey->ttl : VXLAN_DEFAULT_TTL; ipHdr->protocol = IPPROTO_UDP; ASSERT(tunKey->dst == fwdInfo->dstIpAddr); @@ -279,7 +282,7 @@ OvsDoEncapVxlan(POVS_VPORT_ENTRY vport, /* UDP header */ udpHdr = (UDPHdr *)((PCHAR)ipHdr + sizeof *ipHdr); - udpHdr->source = htons(tunKey->flow_hash | 32768); + udpHdr->source = htons(tunKey->flow_hash | MAXINT16); udpHdr->dest = htons(vportVxlan->dstPort); udpHdr->len = htons(NET_BUFFER_DATA_LENGTH(curNb) - headRoom + sizeof *udpHdr + sizeof *vxlanHdr); diff --git a/datapath-windows/ovsext/Vxlan.h b/datapath-windows/ovsext/Vxlan.h index b010af0..a05834d 100644 --- a/datapath-windows/ovsext/Vxlan.h +++ b/datapath-windows/ovsext/Vxlan.h @@ -25,6 +25,7 @@ typedef struct _OVS_VXLAN_VPORT { UINT64 slowInPkts; UINT64 slowOutPkts; UINT64 filterID; + UINT64 ipId; /* * To be filled */ -- 1.9.5.msysgit.0 _______________________________________________ dev mailing list dev@openvswitch.org https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailman_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=CWsgHUxi6ExLXY798tmo3LJ4e3geGYp56lkcH-5cLCY&m=sLmgmKYBzErgdoMYMwZPN5FTTawtYpMeXZQEUMdA32E&s=xCBCnNlcIRw8cupgUMSX1ZwjkglFlMgWQXhkFIU7Zpo&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev