Alin/Nithin, Thanks for the review! I look forward to the Conntrack reviews.
Sairam On 3/31/16, 4:58 PM, "Alin Serdean" <aserd...@cloudbasesolutions.com> wrote: >Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> > > > >> -----Mesaj original----- > >> De la: dev [mailto:dev-boun...@openvswitch.org] În numele Sairam > >> Venugopal > >> Trimis: Friday, April 1, 2016 2:47 AM > >> Către: dev@openvswitch.org > >> Subiect: [ovs-dev] [PATCH v2, 2/3] datapath-windows: Update flow lookup > >> to support RecircId and DpHash > >> > >> Update the OvsLookupFlow to include RecircId and DpHash in its flow > >> comparison. Revert the keyLen related changes until they are aligned > >> appropriately. > >> > >> Signed-off-by: Sairam Venugopal <vsai...@vmware.com> > >> --- > >> datapath-windows/ovsext/Flow.c | 33 ++++++++++++++++++++++++------- > >> -- > >> 1 file changed, 24 insertions(+), 9 deletions(-) > >> > >> diff --git a/datapath-windows/ovsext/Flow.c b/datapath- > >> windows/ovsext/Flow.c index c079540..f74ce12 100644 > >> --- a/datapath-windows/ovsext/Flow.c > >> +++ b/datapath-windows/ovsext/Flow.c > >> @@ -1380,12 +1380,10 @@ _MapKeyAttrToFlowPut(PNL_ATTR *keyAttrs, > >> > >> if (keyAttrs[OVS_KEY_ATTR_RECIRC_ID]) { > >> destKey->recircId = > >> NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_RECIRC_ID]); > >> - destKey->l2.keyLen += sizeof(destKey->recircId); > >> } > >> > >> if (keyAttrs[OVS_KEY_ATTR_DP_HASH]) { > >> destKey->dpHash = > >> NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_DP_HASH]); > >> - destKey->l2.keyLen += sizeof(destKey->dpHash); > >> } > >> > >> /* ===== L2 headers ===== */ > >> @@ -1770,12 +1768,10 @@ OvsGetFlowMetadata(OvsFlowKey *key, > >> > >> if (keyAttrs[OVS_KEY_ATTR_RECIRC_ID]) { > >> key->recircId = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_RECIRC_ID]); > >> - key->l2.keyLen += sizeof(key->recircId); > >> } > >> > >> if (keyAttrs[OVS_KEY_ATTR_DP_HASH]) { > >> key->dpHash = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_DP_HASH]); > >> - key->l2.keyLen += sizeof(key->dpHash); > >> } > >> > >> return status; > >> @@ -2037,7 +2033,7 @@ OvsExtractFlow(const NET_BUFFER_LIST *packet, } > >> > >> __inline BOOLEAN > >> -FlowEqual(UINT64 *src, UINT64 *dst, UINT32 size) > >> +FlowMemoryEqual(UINT64 *src, UINT64 *dst, UINT32 size) > >> { > >> UINT32 i; > >> ASSERT((size & 0x7) == 0); > >> @@ -2051,6 +2047,22 @@ FlowEqual(UINT64 *src, UINT64 *dst, UINT32 size) > >> return TRUE; > >> } > >> > >> +__inline BOOLEAN > >> +FlowEqual(OvsFlow *srcFlow, > >> + const OvsFlowKey *dstKey, > >> + UINT8 *dstStart, > >> + UINT64 hash, > >> + UINT32 offset, > >> + UINT16 size) > >> +{ > >> + return (srcFlow->hash == hash && > >> + srcFlow->key.l2.val == dstKey->l2.val && > >> + srcFlow->key.recircId == dstKey->recircId && > >> + srcFlow->key.dpHash == dstKey->dpHash && > >> + FlowMemoryEqual((UINT64 *)((UINT8 *)&srcFlow->key + >>offset), > >> + (UINT64 *) dstStart, > >> + size)); > >> +} > >> > >> /* > >> * >>------------------------------------------------------------------------- >>--- > >> @@ -2138,6 +2150,12 @@ OvsLookupFlow(OVS_DATAPATH *datapath, > >> > >> if (!hashValid) { > >> *hash = OvsJhashBytes(start, size, 0); > >> + if (key->recircId) { > >> + *hash = OvsJhashWords((UINT32*)hash, 1, key->recircId); > >> + } > >> + if (key->dpHash) { > >> + *hash = OvsJhashWords((UINT32*)hash, 1, key->dpHash); > >> + } > >> } > >> > >> head = &datapath->flowTable[HASH_BUCKET(*hash)]; > >> @@ -2145,10 +2163,7 @@ OvsLookupFlow(OVS_DATAPATH *datapath, > >> while (link != head) { > >> OvsFlow *flow = CONTAINING_RECORD(link, OvsFlow, ListEntry); > >> > >> - if (flow->hash == *hash && > >> - flow->key.l2.val == key->l2.val && > >> - FlowEqual((UINT64 *)((uint8 *)&flow->key + offset), > >> - (UINT64 *)start, size)) { > >> + if (FlowEqual(flow, key, start, *hash, offset, size)) { > >> return flow; > >> } > >> link = link->Flink; > >> -- > >> 2.5.0.windows.1 > >> > >> _______________________________________________ > >> dev mailing list > >> dev@openvswitch.org > >> >>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailm >>an_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r= >>Dcruz40PROJ40ROzSpxyQSLw6fcrOWpJgEcEmNR3JEQ&m=ztQ-06z6ybVSnemGMwf5Kz8fPLv >>31JpEokr6t07LggM&s=k-T_-NJj3SS7MPYageABMaqVelNZrd1GR59UDkOdIC8&e= > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev