diff options
author | Nithin Raju <nithin@vmware.com> | 2016-05-17 10:15:19 -0700 |
---|---|---|
committer | Joe Stringer <joe@ovn.org> | 2016-05-25 10:24:59 -0700 |
commit | 3fd9ec0b81f37454ba91e6a8ae3605ecd85a71c5 (patch) | |
tree | 82c2657a6c67bfd1a8165e7e4205779753e2d95e /datapath-windows | |
parent | 9509913aa722158472bebe0d38ddef15eb49729a (diff) | |
download | openvswitch-3fd9ec0b81f37454ba91e6a8ae3605ecd85a71c5.tar.gz |
datapath-windows: add nlMsgHdr to OvsPacketExecute
We'll need this for parsing nested attributes.
Signed-off-by: Nithin Raju <nithin@vmware.com>
Acked-by: Sairam Venugopal <vsairam@vmware.com>
Signed-off-by: Joe Stringer <joe@ovn.org>
Diffstat (limited to 'datapath-windows')
-rw-r--r-- | datapath-windows/ovsext/DpInternal.h | 1 | ||||
-rw-r--r-- | datapath-windows/ovsext/User.c | 13 |
2 files changed, 9 insertions, 5 deletions
diff --git a/datapath-windows/ovsext/DpInternal.h b/datapath-windows/ovsext/DpInternal.h index a3ce311cc..07bc1804b 100644 --- a/datapath-windows/ovsext/DpInternal.h +++ b/datapath-windows/ovsext/DpInternal.h @@ -275,6 +275,7 @@ typedef struct OvsPacketExecute { uint32_t packetLen; uint32_t actionsLen; + PNL_MSG_HDR nlMsgHdr; PCHAR packetBuf; PNL_ATTR actions; PNL_ATTR *keyAttrs; diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c index f2e3c1791..87ac56aed 100644 --- a/datapath-windows/ovsext/User.c +++ b/datapath-windows/ovsext/User.c @@ -46,8 +46,9 @@ extern PNDIS_SPIN_LOCK gOvsCtrlLock; extern POVS_SWITCH_CONTEXT gOvsSwitchContext; OVS_USER_STATS ovsUserStats; -static VOID _MapNlAttrToOvsPktExec(PNL_ATTR *nlAttrs, PNL_ATTR *keyAttrs, - OvsPacketExecute *execute); +static VOID _MapNlAttrToOvsPktExec(PNL_MSG_HDR nlMsgHdr, PNL_ATTR *nlAttrs, + PNL_ATTR *keyAttrs, + OvsPacketExecute *execute); extern NL_POLICY nlFlowKeyPolicy[]; extern UINT32 nlFlowKeyPolicyLen; @@ -311,7 +312,7 @@ OvsNlExecuteCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx, execute.dpNo = ovsHdr->dp_ifindex; - _MapNlAttrToOvsPktExec(nlAttrs, keyAttrs, &execute); + _MapNlAttrToOvsPktExec(nlMsgHdr, nlAttrs, keyAttrs, &execute); status = OvsExecuteDpIoctl(&execute); @@ -364,12 +365,14 @@ done: *---------------------------------------------------------------------------- */ static VOID -_MapNlAttrToOvsPktExec(PNL_ATTR *nlAttrs, PNL_ATTR *keyAttrs, - OvsPacketExecute *execute) +_MapNlAttrToOvsPktExec(PNL_MSG_HDR nlMsgHdr, PNL_ATTR *nlAttrs, + PNL_ATTR *keyAttrs, OvsPacketExecute *execute) { execute->packetBuf = NlAttrGet(nlAttrs[OVS_PACKET_ATTR_PACKET]); execute->packetLen = NlAttrGetSize(nlAttrs[OVS_PACKET_ATTR_PACKET]); + execute->nlMsgHdr = nlMsgHdr; + execute->actions = NlAttrGet(nlAttrs[OVS_PACKET_ATTR_ACTIONS]); execute->actionsLen = NlAttrGetSize(nlAttrs[OVS_PACKET_ATTR_ACTIONS]); |