Acked-by: Sairam Venugopal <vsai...@vmware.com>
On 5/17/16, 8:23 AM, "Paul Boca" <pb...@cloudbasesolutions.com> wrote: >Add VLAN to STT header and on receive applyit to encapsulated packet > >Signed-off-by: Paul-Daniel Boca <pb...@cloudbasesolutions.com> >--- > datapath-windows/ovsext/Stt.c | 22 +++++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > >diff --git a/datapath-windows/ovsext/Stt.c b/datapath-windows/ovsext/Stt.c >index 406e690..5b5d950 100644 >--- a/datapath-windows/ovsext/Stt.c >+++ b/datapath-windows/ovsext/Stt.c >@@ -156,6 +156,7 @@ OvsDoEncapStt(POVS_VPORT_ENTRY vport, > PUINT8 bufferStart; > ULONG mss = 0; > NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO lsoInfo; >+ PVOID vlanTagValue; > > curNb = NET_BUFFER_LIST_FIRST_NB(curNbl); > >@@ -173,6 +174,7 @@ OvsDoEncapStt(POVS_VPORT_ENTRY vport, > NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO csumInfo; > csumInfo.Value = NET_BUFFER_LIST_INFO(curNbl, > >TcpIpChecksumNetBufferListInfo); >+ vlanTagValue = NET_BUFFER_LIST_INFO(curNbl, >Ieee8021QNetBufferListInfo); > *newNbl = OvsPartialCopyNBL(switchContext, curNbl, 0, headRoom, > FALSE /*copy NblInfo*/); > if (*newNbl == NULL) { >@@ -313,8 +315,16 @@ OvsDoEncapStt(POVS_VPORT_ENTRY vport, > } > } > >- sttHdr->reserved = 0; >+ /* Set VLAN tag */ > sttHdr->vlanTCI = 0; >+ if (vlanTagValue) { >+ PNDIS_NET_BUFFER_LIST_8021Q_INFO vlanTag = >+ (PNDIS_NET_BUFFER_LIST_8021Q_INFO)(PVOID *)&vlanTagValue; >+ sttHdr->vlanTCI = htons(vlanTag->TagHeader.VlanId | >OVSWIN_VLAN_CFI | >+ (vlanTag->TagHeader.UserPriority << 13)); >+ } >+ >+ sttHdr->reserved = 0; > sttHdr->key = tunKey->tunnelId; > /* Zero out stt padding */ > *(uint16 *)(sttHdr + 1) = 0; >@@ -900,6 +910,16 @@ OvsDecapStt(POVS_SWITCH_CONTEXT switchContext, > tunKey->ttl = ipHdr->ttl; > tunKey->pad = 0; > >+ /* Apply VLAN tag if present */ >+ if (ntohs(sttHdr->vlanTCI) & OVSWIN_VLAN_CFI) { >+ NDIS_NET_BUFFER_LIST_8021Q_INFO vlanTag; >+ vlanTag.Value = 0; >+ vlanTag.TagHeader.VlanId = ntohs(sttHdr->vlanTCI) & 0xfff; >+ vlanTag.TagHeader.UserPriority = ntohs(sttHdr->vlanTCI) >> 13; >+ NET_BUFFER_LIST_INFO(*newNbl, >+ Ieee8021QNetBufferListInfo) = vlanTag.Value; >+ } >+ > /* Set Checksum and LSO offload flags */ > OvsDecapSetOffloads(newNbl, sttHdr); > >-- >2.7.2.windows.1 >_______________________________________________ >dev mailing list >dev@openvswitch.org >https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma >n_listinfo_dev&d=CwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Dc >ruz40PROJ40ROzSpxyQSLw6fcrOWpJgEcEmNR3JEQ&m=QvWslawbaDcox_mJS25wJEYrMz746s >dvPy5kJgGNIIw&s=wn-bLozMCaqiKEqElD3Al-1ugBt-EaTqaTy60N3m-qo&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev