On Thu, Oct 10, 2024 at 02:28:59PM +0200, Laurent Vivier wrote: > Export tcp_fill_headers[4|6]() and tcp_update_check_tcp[4|6](). > > They'll be needed by vhost-user. > > Signed-off-by: Laurent Vivier Reviewed-by: David Gibson > --- > tcp.c | 30 +++++++++++++++--------------- > tcp_internal.h | 15 +++++++++++++++ > 2 files changed, 30 insertions(+), 15 deletions(-) > > diff --git a/tcp.c b/tcp.c > index 9617b7ac2404..eae02b1647e3 100644 > --- a/tcp.c > +++ b/tcp.c > @@ -761,9 +761,9 @@ static void tcp_sock_set_bufsize(const struct ctx *c, int s) > * @iov_cnt: Length of the array > * @l4offset: IPv4 payload offset in the iovec array > */ > -static void tcp_update_check_tcp4(const struct iphdr *iph, > - const struct iovec *iov, int iov_cnt, > - size_t l4offset) > +void tcp_update_check_tcp4(const struct iphdr *iph, > + const struct iovec *iov, int iov_cnt, > + size_t l4offset) > { > uint16_t l4len = ntohs(iph->tot_len) - sizeof(struct iphdr); > struct in_addr saddr = { .s_addr = iph->saddr }; > @@ -813,9 +813,9 @@ static void tcp_update_check_tcp4(const struct iphdr *iph, > * @iov_cnt: Length of the array > * @l4offset: IPv6 payload offset in the iovec array > */ > -static void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, > - const struct iovec *iov, int iov_cnt, > - size_t l4offset) > +void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, > + const struct iovec *iov, int iov_cnt, > + size_t l4offset) > { > uint16_t l4len = ntohs(ip6h->payload_len); > size_t check_ofs; > @@ -982,11 +982,11 @@ static void tcp_fill_header(struct tcphdr *th, > * > * Return: The IPv4 payload length, host order > */ > -static size_t tcp_fill_headers4(const struct tcp_tap_conn *conn, > - struct tap_hdr *taph, > - struct iphdr *iph, struct tcp_payload_t *bp, > - size_t dlen, const uint16_t *check, > - uint32_t seq, bool no_tcp_csum) > +size_t tcp_fill_headers4(const struct tcp_tap_conn *conn, > + struct tap_hdr *taph, > + struct iphdr *iph, struct tcp_payload_t *bp, > + size_t dlen, const uint16_t *check, > + uint32_t seq, bool no_tcp_csum) > { > const struct flowside *tapside = TAPFLOW(conn); > const struct in_addr *src4 = inany_v4(&tapside->oaddr); > @@ -1034,10 +1034,10 @@ static size_t tcp_fill_headers4(const struct tcp_tap_conn *conn, > * > * Return: The IPv6 payload length, host order > */ > -static size_t tcp_fill_headers6(const struct tcp_tap_conn *conn, > - struct tap_hdr *taph, > - struct ipv6hdr *ip6h, struct tcp_payload_t *bp, > - size_t dlen, uint32_t seq, bool no_tcp_csum) > +size_t tcp_fill_headers6(const struct tcp_tap_conn *conn, > + struct tap_hdr *taph, > + struct ipv6hdr *ip6h, struct tcp_payload_t *bp, > + size_t dlen, uint32_t seq, bool no_tcp_csum) > { > const struct flowside *tapside = TAPFLOW(conn); > size_t l4len = dlen + sizeof(bp->th); > diff --git a/tcp_internal.h b/tcp_internal.h > index 2f74ffeff8f3..8e87f98b470f 100644 > --- a/tcp_internal.h > +++ b/tcp_internal.h > @@ -118,6 +118,21 @@ void tcp_rst_do(const struct ctx *c, struct tcp_tap_conn *conn); > tcp_rst_do(c, conn); \ > } while (0) > > +void tcp_update_check_tcp4(const struct iphdr *iph, > + const struct iovec *iov, int iov_cnt, > + size_t l4offset); > +void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, > + const struct iovec *iov, int iov_cnt, > + size_t l4offset); > +size_t tcp_fill_headers4(const struct tcp_tap_conn *conn, > + struct tap_hdr *taph, > + struct iphdr *iph, struct tcp_payload_t *bp, > + size_t dlen, const uint16_t *check, > + uint32_t seq, bool no_tcp_csum); > +size_t tcp_fill_headers6(const struct tcp_tap_conn *conn, > + struct tap_hdr *taph, > + struct ipv6hdr *ip6h, struct tcp_payload_t *bp, > + size_t dlen, uint32_t seq, bool no_tcp_csum); > size_t tcp_l2_buf_fill_headers(const struct tcp_tap_conn *conn, > struct iovec *iov, size_t dlen, > const uint16_t *check, uint32_t seq, -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson