Acked-by: Sairam Venugopal <vsai...@vmware.com>
On 8/29/16, 12:11 PM, "Paul Boca" <pb...@cloudbasesolutions.com> wrote: >In user mode the flags are interpreted as little endian. >This fix makes the kernel mode compatible with user mode. > >Signed-off-by: Paul-Daniel Boca <pb...@cloudbasesolutions.com> >--- > datapath-windows/ovsext/Conntrack-tcp.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > >diff --git a/datapath-windows/ovsext/Conntrack-tcp.c >b/datapath-windows/ovsext/Conntrack-tcp.c >index 1820705..6adf490 100644 >--- a/datapath-windows/ovsext/Conntrack-tcp.c >+++ b/datapath-windows/ovsext/Conntrack-tcp.c >@@ -226,13 +226,13 @@ OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_, > /* The peer that should receive 'pkt' */ > struct tcp_peer *dst = &conn->peer[reply ? 0 : 1]; > uint8_t sws = 0, dws = 0; >- UINT16 tcp_flags = tcp->flags; >+ UINT16 tcp_flags = ntohs(tcp->flags); > uint16_t win = ntohs(tcp->window); > uint32_t ack, end, seq, orig_seq; > uint32_t p_len = OvsGetTcpPayloadLength(nbl); > int ackskew; > >- if (OvsCtInvalidTcpFlags(tcp->flags)) { >+ if (OvsCtInvalidTcpFlags(tcp_flags)) { > return CT_UPDATE_INVALID; > } > >@@ -268,7 +268,7 @@ OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_, > if (src->state < CT_DPIF_TCPS_SYN_SENT) { > /* First packet from this end. Set its state */ > >- ack = ntohl(tcp->ack); >+ ack = ntohl(tcp->ack_seq); > > end = seq + p_len; > if (tcp_flags & TCP_SYN) { >@@ -308,7 +308,7 @@ OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_, > } > > } else { >- ack = ntohl(tcp->ack); >+ ack = ntohl(tcp->ack_seq); > end = seq + p_len; > if (tcp_flags & TCP_SYN) { > end++; >@@ -460,14 +460,16 @@ OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_, > BOOLEAN > OvsConntrackValidateTcpPacket(const TCPHdr *tcp) > { >- if (tcp == NULL || OvsCtInvalidTcpFlags(tcp->flags)) { >+ UINT16 tcp_flags = ntohs(tcp->flags); >+ >+ if (tcp == NULL || OvsCtInvalidTcpFlags(tcp_flags)) { > return FALSE; > } > > /* A syn+ack is not allowed to create a connection. We want to allow > * totally new connections (syn) or already established, not >partially > * open (syn+ack). */ >- if ((tcp->flags & TCP_SYN) && (tcp->flags & TCP_ACK)) { >+ if ((tcp_flags & TCP_SYN) && (tcp_flags & TCP_ACK)) { > return FALSE; > } > >-- >2.7.2.windows.1 >_______________________________________________ >dev mailing list >dev@openvswitch.org >https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma >n_listinfo_dev&d=CwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Dc >ruz40PROJ40ROzSpxyQSLw6fcrOWpJgEcEmNR3JEQ&m=-t_4jk9EGYkPrqqyTzqsf-MwYtIRao >UO_wtdXLKQQB8&s=ig_QjFu7-uTiDcXKO1ji6g5eqXfDDMCBsHpSncV6nr0&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev