On Fri, Nov 25, 2022 at 02:47:59AM +0100, Stefano Brivio wrote: > Nit: > > On Thu, 24 Nov 2022 12:16:47 +1100 > David Gibson wrote: > > > Currently we connect() the socket we use to forward spliced UDP flows. > > However, we now only ever use sendto() rather than send() on this socket > > so there's not actually any need to connect it. Don't do so. > > > > Rename a number of things that referred to "connect" or "conn" since that > > would now be misleading. > > > > Signed-off-by: David Gibson > > --- > > udp.c | 85 ++++++++++++++++++++++++----------------------------------- > > 1 file changed, 35 insertions(+), 50 deletions(-) > > > > diff --git a/udp.c b/udp.c > > index 1e78da5..ed095ec 100644 > > --- a/udp.c > > +++ b/udp.c > > @@ -45,23 +45,20 @@ > > * > > * - from init to namespace: > > * > > - * - forward direction: 127.0.0.1:5000 -> 127.0.0.1:80 in init from bound > > - * socket s, with epoll reference: index = 80, splice = UDP_TO_NS > > + * - forward direction: 127.0.0.1:5000 -> 127.0.0.1:80 in init from socket s, > > + * with epoll reference: index = 80, splice = UDP_TO_NS > > * - if udp_splice_to_ns[V4][5000].target_sock: > > * - send packet to udp_splice_to_ns[V4][5000].target_sock, with > > * destination port 80 > > * - otherwise: > > * - create new socket udp_splice_to_ns[V4][5000].target_sock > > * - bind in namespace to 127.0.0.1:5000 > > - * - connect in namespace to 127.0.0.1:80 (note: this destination port > > - * might be remapped to another port instead) > > * - add to epoll with reference: index = 5000, splice: UDP_BACK_TO_INIT > > * - set udp_splice_to_ns[V4][5000].orig_sock to s > > * - update udp_splice_to_ns[V4][5000].ts with current time > > * > > - * - reverse direction: 127.0.0.1:80 -> 127.0.0.1:5000 in namespace from > > - * connected socket s, having epoll reference: index = 5000, > > - * splice = UDP_BACK_TO_INIT > > + * - reverse direction: 127.0.0.1:80 -> 127.0.0.1:5000 in namespace socket s, > > + * having epoll reference: index = 5000, splice = UDP_BACK_TO_INIT > > * - if udp_splice_to_ns[V4][5000].orig_sock: > > * - send to udp_splice_to_ns[V4][5000].orig_sock, with destination port > > * 5000 > > @@ -69,7 +66,7 @@ > > * > > * - from namespace to init: > > * > > - * - forward direction: 127.0.0.1:2000 -> 127.0.0.1:22 in namespace from bound > > + * - forward direction: 127.0.0.1:2000 -> 127.0.0.1:22 in namespace from > > * socket s, with epoll reference: index = 22, splice = UDP_TO_INIT > > * - if udp4_splice_to_init[V4][2000].target_sock: > > * - send packet to udp_splice_to_init[V4][2000].target_sock, with > > @@ -77,14 +74,12 @@ > > * - otherwise: > > * - create new socket udp_splice_to_init[V4][2000].target_sock > > * - bind in init to 127.0.0.1:2000 > > - * - connect in init to 127.0.0.1:22 (note: this destination port > > - * might be remapped to another port instead) > > * - add to epoll with reference: index = 2000, splice = UDP_BACK_TO_NS > > * - set udp_splice_to_init[V4][2000].orig_sock to s > > * - update udp_splice_to_init[V4][2000].ts with current time > > * > > - * - reverse direction: 127.0.0.1:22 -> 127.0.0.1:2000 in init from connected > > - * socket s, having epoll reference: index = 2000, splice = UDP_BACK_TO_NS > > + * - reverse direction: 127.0.0.1:22 -> 127.0.0.1:2000 in init from socket s, > > + * having epoll reference: index = 2000, splice = UDP_BACK_TO_NS > > * - if udp_splice_to_init[V4][2000].orig_sock: > > * - send to udp_splice_to_init[V4][2000].orig_sock, with destination port > > * 2000 > > @@ -144,8 +139,7 @@ struct udp_tap_port { > > * @orig_sock: Originating socket, bound to dest port in source ns of > > * originating datagram > > * @target_sock: Target socket, bound to source port of originating > > - * datagram in dest ns, connected to dest port of > > - * originating datagram in dest ns > > + * datagram in dest ns > > * @ts: Activity timestamp > > */ > > struct udp_splice_flow { > > @@ -163,8 +157,8 @@ static struct udp_splice_flow udp_splice_to_init[IP_VERSIONS][NUM_PORTS]; > > > > enum udp_act_type { > > UDP_ACT_TAP, > > - UDP_ACT_NS_CONN, > > - UDP_ACT_INIT_CONN, > > + UDP_ACT_SPLICE_NS, > > + UDP_ACT_SPLICE_INIT, > > UDP_ACT_TYPE_MAX, > > }; > > > > @@ -398,20 +392,19 @@ static void udp_sock6_iov_init(void) > > } > > > > /** > > - * udp_splice_connect() - Create and connect socket for "spliced" binding > > + * udp_splice_new() - Create and prepare socket for "spliced" binding > > * @c: Execution context > > - * @v6: Set for IPv6 connections > > + * @v6: Set for IPv6 sockets > > * @bound_sock: Originating bound socket > > * @src: Source port of original connection, host order > > - * @dst: Destination port of original connection, host order > > * @splice: UDP_BACK_TO_INIT from init, UDP_BACK_TO_NS from namespace > > * > > - * Return: connected socket, negative error code on failure > > + * Return: Prepared socket, negative error code on failure > > prepared Fixed. Is there a particular rationale for capitalizing on the parameters, but not the return description? -- David Gibson | 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