Acked-by: Sorin Vinturis <svintu...@cloudbasesolutions.com> -----Original Message----- From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Alin Serdean Sent: Thursday, 10 March, 2016 16:07 To: dev@openvswitch.org Subject: [ovs-dev] [PATCH] datapath-windows: Add OVS_KEY_ATTR_ICMP support
Revisit the mapping of an IPv4 key to netlink key and add the according transformation. Also add support for OVS_KEY_ATTR_ICMP to the windows datapath. Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> --- datapath-windows/ovsext/Flow.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c index 5eec513..9e9b8b0 100644 --- a/datapath-windows/ovsext/Flow.c +++ b/datapath-windows/ovsext/Flow.c @@ -1034,13 +1034,12 @@ _MapFlowIpv4KeyToNlKey(PNL_BUFFER nlBuf, IpKey *ipv4FlowPutKey) case IPPROTO_ICMP: { struct ovs_key_icmp icmpKey; - /* XXX: revisit to see if htons is needed */ - icmpKey.icmp_type = (__u8)(ipv4FlowPutKey->l4.tpSrc); - icmpKey.icmp_code = (__u8)(ipv4FlowPutKey->l4.tpDst); + icmpKey.icmp_type = (__u8)ntohs(ipv4FlowPutKey->l4.tpSrc); + icmpKey.icmp_code = (__u8)ntohs(ipv4FlowPutKey->l4.tpDst); if (!NlMsgPutTailUnspec(nlBuf, OVS_KEY_ATTR_ICMP, - (PCHAR)(&icmpKey), - sizeof(icmpKey))) { + (PCHAR)(&icmpKey), + sizeof(icmpKey))) { rc = STATUS_UNSUCCESSFUL; goto done; } @@ -1411,6 +1410,13 @@ _MapKeyAttrToFlowPut(PNL_ATTR *keyAttrs, ipv4FlowPutKey->l4.tpDst = sctpKey->sctp_dst; } + if (keyAttrs[OVS_KEY_ATTR_ICMP]) { + const struct ovs_key_icmp *icmpKey; + icmpKey = NlAttrGet(keyAttrs[OVS_KEY_ATTR_ICMP]); + ipv4FlowPutKey->l4.tpSrc = htons(icmpKey->icmp_type); + ipv4FlowPutKey->l4.tpDst = htons(icmpKey->icmp_code); + } + destKey->l2.keyLen += OVS_IP_KEY_SIZE; } break; -- 1.9.5.msysgit.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev