The function tcp_payload_length is moved to a private include file to be used by other conntrack files. A sanity check is added for general use, although previous usage was safe in that filtering is already done by the time it is called.
Signed-off-by: Darrell Ball <[email protected]> --- lib/conntrack-private.h | 13 +++++++++++++ lib/conntrack-tcp.c | 7 ------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/conntrack-private.h b/lib/conntrack-private.h index a7c2ae4..34ab77d 100644 --- a/lib/conntrack-private.h +++ b/lib/conntrack-private.h @@ -28,6 +28,7 @@ #include "openvswitch/types.h" #include "packets.h" #include "unaligned.h" +#include "dp-packet.h" struct ct_endpoint { struct ct_addr addr; @@ -116,4 +117,16 @@ conn_update_expiration(struct conntrack_bucket *ctb, struct conn *conn, conn_init_expiration(ctb, conn, tm, now); } +static inline uint32_t +tcp_payload_length(struct dp_packet *pkt) +{ + char * tcp_payload = (char *) 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; + } +} + #endif /* conntrack-private.h */ diff --git a/lib/conntrack-tcp.c b/lib/conntrack-tcp.c index ea22400..04460c3 100644 --- a/lib/conntrack-tcp.c +++ b/lib/conntrack-tcp.c @@ -144,13 +144,6 @@ tcp_get_wscale(const struct tcp_header *tcp) return wscale; } -static uint32_t -tcp_payload_length(struct dp_packet *pkt) -{ - return (char *) dp_packet_tail(pkt) - dp_packet_l2_pad_size(pkt) - - (char *) dp_packet_get_tcp_payload(pkt); -} - static enum ct_update_res tcp_conn_update(struct conn *conn_, struct conntrack_bucket *ctb, struct dp_packet *pkt, bool reply, long long now) -- 1.9.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
