Acked-By: Yin Lin <li...@vmware.com> On Mon, Jul 25, 2016 at 5:04 PM, Sairam Venugopal <vsai...@vmware.com> wrote:
> Tweak the OvsCreateNlMsgFromCtEntry() method to reuse it for creating > netlink messages from other files. Also define the function in Conntrack.h > to make it accessible. > > v2: Added Acked-By > > Signed-off-by: Sairam Venugopal <vsai...@vmware.com> > Acked-By: Yin Lin <li...@vmware.com> > Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> > --- > datapath-windows/ovsext/Conntrack.c | 32 ++++++++++++++++++++++---------- > datapath-windows/ovsext/Conntrack.h | 9 +++++++++ > 2 files changed, 31 insertions(+), 10 deletions(-) > > diff --git a/datapath-windows/ovsext/Conntrack.c > b/datapath-windows/ovsext/Conntrack.c > index 90b59ce..382c13d 100644 > --- a/datapath-windows/ovsext/Conntrack.c > +++ b/datapath-windows/ovsext/Conntrack.c > @@ -934,12 +934,15 @@ WindowsTickToUnixSeconds(long long windowsTicks) > - SEC_TO_UNIX_EPOCH)); > } > > -static NTSTATUS > +NTSTATUS > OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, > - POVS_MESSAGE msgIn, > PVOID outBuffer, > UINT32 outBufLen, > - int dpIfIndex) > + UINT8 eventType, > + UINT32 nlmsgSeq, > + UINT32 nlmsgPid, > + UINT8 nfGenVersion, > + UINT32 dpIfIndex) > { > NL_BUFFER nlBuf; > BOOLEAN ok; > @@ -947,6 +950,7 @@ OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, > UINT32 timeout; > NDIS_STATUS status; > UINT64 currentTime, expiration; > + UINT16 nlmsgType; > NdisGetCurrentSystemTime((LARGE_INTEGER *)¤tTime); > UINT8 nfgenFamily = 0; > if (entry->key.dl_type == htons(ETH_TYPE_IPV4)) { > @@ -957,13 +961,17 @@ OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, > > NlBufInit(&nlBuf, outBuffer, outBufLen); > /* Mimic netfilter */ > - UINT16 nlmsgType = (NFNL_SUBSYS_CTNETLINK << 8 | IPCTNL_MSG_CT_NEW); > + if (eventType == OVS_EVENT_CT_NEW) { > + nlmsgType = (UINT16) (NFNL_SUBSYS_CTNETLINK << 8 | > IPCTNL_MSG_CT_NEW); > + } else if (eventType == OVS_EVENT_CT_DELETE) { > + nlmsgType = (UINT16) (NFNL_SUBSYS_CTNETLINK << 8 | > IPCTNL_MSG_CT_DELETE); > + } else { > + return STATUS_INVALID_PARAMETER; > + } > + > ok = NlFillOvsMsgForNfGenMsg(&nlBuf, nlmsgType, NLM_F_CREATE, > - msgIn->nlMsg.nlmsgSeq, > - msgIn->nlMsg.nlmsgPid, > - nfgenFamily, > - msgIn->nfGenMsg.version, > - dpIfIndex); > + nlmsgSeq, nlmsgPid, nfgenFamily, > + nfGenVersion, dpIfIndex); > if (!ok) { > return STATUS_INVALID_BUFFER_SIZE; > } > @@ -1130,9 +1138,13 @@ OvsCtDumpCmdHandler(POVS_USER_PARAMS_CONTEXT > usrParamsCtx, > if (outIndex >= inIndex) { > entry = CONTAINING_RECORD(link, OVS_CT_ENTRY, link); > > - rc = OvsCreateNlMsgFromCtEntry(entry, msgIn, > + rc = OvsCreateNlMsgFromCtEntry(entry, > > usrParamsCtx->outputBuffer, > > usrParamsCtx->outputLength, > + OVS_EVENT_CT_NEW, > + msgIn->nlMsg.nlmsgSeq, > + msgIn->nlMsg.nlmsgPid, > + > msgIn->nfGenMsg.version, > 0); > > if (rc != NDIS_STATUS_SUCCESS) { > diff --git a/datapath-windows/ovsext/Conntrack.h > b/datapath-windows/ovsext/Conntrack.h > index 6d573c8..4995ff4 100644 > --- a/datapath-windows/ovsext/Conntrack.h > +++ b/datapath-windows/ovsext/Conntrack.h > @@ -116,4 +116,13 @@ enum CT_UPDATE_RES > OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_, > enum ct_update_res OvsConntrackUpdateOtherEntry(OVS_CT_ENTRY *conn_, > BOOLEAN reply, > UINT64 now); > +NTSTATUS > +OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, > + PVOID outBuffer, > + UINT32 outBufLen, > + UINT8 eventType, > + UINT32 nlmsgSeq, > + UINT32 nlmsgPid, > + UINT8 nfGenVersion, > + UINT32 dpIfIndex); > #endif /* __OVS_CONNTRACK_H_ */ > -- > 2.9.0.windows.1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev