[ovs-dev] [PATCH v2 1/4] datapath-windows: Conntrack - Fix OvsGetTcpPayloadLength()
Alin Serdean
aserdean at cloudbasesolutions.com
Thu Dec 15 12:15:57 UTC 2016
Just a small alignment problem.
Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
> -----Original Message-----
> From: ovs-dev-bounces at openvswitch.org [mailto:ovs-dev-
> bounces at openvswitch.org] On Behalf Of Sairam Venugopal
> Sent: Friday, December 9, 2016 10:05 PM
> To: dev at openvswitch.org
> Subject: [ovs-dev] [PATCH v2 1/4] datapath-windows: Conntrack - Fix
> OvsGetTcpPayloadLength()
>
> Move the OvsGetTcpPayloadLength() to common header. Update the code
> to check for null references and the correct size of the TCP header.
>
> Signed-off-by: Sairam Venugopal <vsairam at vmware.com>
> ---
> datapath-windows/ovsext/Conntrack-tcp.c | 15 ---------------
> datapath-windows/ovsext/Conntrack.h | 22 ++++++++++++++++++++++
> 2 files changed, 22 insertions(+), 15 deletions(-)
>
> diff --git a/datapath-windows/ovsext/Conntrack-tcp.c b/datapath-
> windows/ovsext/Conntrack-tcp.c
> index c7fcfa8..a60a198 100644
> --- a/datapath-windows/ovsext/Conntrack-tcp.c
> +++ b/datapath-windows/ovsext/Conntrack-tcp.c
> @@ -184,21 +184,6 @@ OvsTcpGetWscale(const TCPHdr *tcp)
> return wscale;
> }
>
> -static __inline uint32_t
> -OvsGetTcpPayloadLength(PNET_BUFFER_LIST nbl) -{
> - IPHdr *ipHdr;
> - char *ipBuf[sizeof(IPHdr)];
> - PNET_BUFFER curNb;
> - curNb = NET_BUFFER_LIST_FIRST_NB(nbl);
> - ipHdr = NdisGetDataBuffer(curNb, sizeof *ipHdr, (PVOID) &ipBuf,
> - 1 /*no align*/, 0);
> - TCPHdr *tcp = (TCPHdr *)((PCHAR)ipHdr + ipHdr->ihl * 4);
> - return (UINT16)ntohs(ipHdr->tot_len)
> - - (ipHdr->ihl * 4)
> - - (sizeof * tcp);
> -}
> -
> static __inline struct conn_tcp*
> OvsCastConntrackEntryToTcpEntry(OVS_CT_ENTRY* conn) { diff --git
> a/datapath-windows/ovsext/Conntrack.h b/datapath-
> windows/ovsext/Conntrack.h
> index 270e2dd..428b12e 100644
> --- a/datapath-windows/ovsext/Conntrack.h
> +++ b/datapath-windows/ovsext/Conntrack.h
> @@ -109,6 +109,28 @@ OvsConntrackUpdateExpiration(OVS_CT_ENTRY
> *ctEntry,
> ctEntry->expiration = now + interval; }
>
> +static __inline UINT32
> +OvsGetTcpPayloadLength(PNET_BUFFER_LIST nbl) {
> + IPHdr *ipHdr;
> + char *ipBuf[sizeof(IPHdr)];
> + PNET_BUFFER curNb;
> + curNb = NET_BUFFER_LIST_FIRST_NB(nbl);
> + UINT32 hdrLen = sizeof(EthHdr);
> + NdisAdvanceNetBufferDataStart(curNb, hdrLen, FALSE, NULL);
> + ipHdr = NdisGetDataBuffer(curNb, sizeof *ipHdr, (PVOID) &ipBuf,
[Alin Serdean] Alignment issue
> + 1 /*no align*/, 0);
> + if (ipHdr == NULL) {
> + NdisRetreatNetBufferDataStart(curNb, hdrLen, 0, NULL);
> + return 0;
> + }
> +
> + TCPHdr *tcp = (TCPHdr *)((PCHAR)ipHdr + ipHdr->ihl * 4);
> + NdisRetreatNetBufferDataStart(curNb, hdrLen, 0, NULL);
> +
> + return (ntohs(ipHdr->tot_len) - (ipHdr->ihl * 4) -
> +(TCP_HDR_LEN(tcp))); }
> +
> VOID OvsCleanupConntrack(VOID);
> NTSTATUS OvsInitConntrack(POVS_SWITCH_CONTEXT context);
>
> --
> 2.9.0.windows.1
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
More information about the dev
mailing list