Thanks for the patch Would you mind describing the use case that this patch is aiming to support ?
On Fri, Nov 8, 2019 at 1:23 AM Zhike Wang <wangzk...@163.com> wrote: > Signed-off-by: Zhike Wang <wangzk...@163.com> > --- > lib/conntrack-private.h | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/lib/conntrack-private.h b/lib/conntrack-private.h > index 590f139..1d21f6e 100644 > --- a/lib/conntrack-private.h > +++ b/lib/conntrack-private.h > @@ -233,13 +233,17 @@ conn_update_expiration(struct conntrack *ct, struct > conn *conn, > static inline uint32_t > tcp_payload_length(struct dp_packet *pkt) > { > - const char *tcp_payload = dp_packet_get_tcp_payload(pkt); > - if (tcp_payload) { > - return ((char *) dp_packet_tail(pkt) - dp_packet_l2_pad_size(pkt) > - - tcp_payload); > - } else { > - return 0; > + size_t l4_size = dp_packet_l4_size(pkt); > + > + if (OVS_LIKELY(l4_size >= TCP_HEADER_LEN)) { > + struct tcp_header *tcp = dp_packet_l4(pkt); > + int tcp_len = TCP_OFFSET(tcp->tcp_ctl) * 4; > + > + if (OVS_LIKELY(tcp_len >= TCP_HEADER_LEN && tcp_len <= l4_size)) { > + return (l4_size - tcp_len); > + } > Maybe I missed something, but it looks like the same calculation is arrived at. > } > + return 0; > } > > #endif /* conntrack-private.h */ > -- > 1.8.3.1 > > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev