The payload calculation in OvsGetTcpHeader is wrong: `ntohs(ipHdr->tot_len) - expr` instead of `ntohs((ipHdr->tot_len) - expr)`.
We already have a macro for that calculation defined in NetProto.h so use it. Signed-off-by: Alin Gabriel Serdean <[email protected]> --- datapath-windows/ovsext/Conntrack.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/datapath-windows/ovsext/Conntrack.h b/datapath-windows/ovsext/Conntrack.h index d4152b33a..044fb436c 100644 --- a/datapath-windows/ovsext/Conntrack.h +++ b/datapath-windows/ovsext/Conntrack.h @@ -175,8 +175,7 @@ OvsGetTcpHeader(PNET_BUFFER_LIST nbl, tcp = (TCPHdr *)((PCHAR)ipHdr + ipHdr->ihl * 4); if (tcp->doff * 4 >= sizeof *tcp) { NdisMoveMemory(dest, tcp, sizeof(TCPHdr)); - *tcpPayloadLen = ntohs((ipHdr->tot_len) - (ipHdr->ihl * 4) - - (TCP_HDR_LEN(tcp))); + *tcpPayloadLen = TCP_DATA_LENGTH(ipHdr, tcp); return storage; } -- 2.16.1.windows.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
