lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 541/849] udp6: allow SO_MARK ctrl msg to affect routing
    Date
    From: Jakub Kicinski <kuba@kernel.org>

    [ Upstream commit 42dcfd850e514b229d616a53dec06d0f2533217c ]

    Commit c6af0c227a22 ("ip: support SO_MARK cmsg")
    added propagation of SO_MARK from cmsg to skb->mark.
    For IPv4 and raw sockets the mark also affects route
    lookup, but in case of IPv6 the flow info is
    initialized before cmsg is parsed.

    Fixes: c6af0c227a22 ("ip: support SO_MARK cmsg")
    Reported-and-tested-by: Xintong Hu <huxintong@fb.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/ipv6/udp.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
    index ba77955d75fbd..6a990afc2eee7 100644
    --- a/net/ipv6/udp.c
    +++ b/net/ipv6/udp.c
    @@ -1435,7 +1435,6 @@ do_udp_sendmsg:
    if (!fl6.flowi6_oif)
    fl6.flowi6_oif = np->sticky_pktinfo.ipi6_ifindex;

    - fl6.flowi6_mark = ipc6.sockc.mark;
    fl6.flowi6_uid = sk->sk_uid;

    if (msg->msg_controllen) {
    @@ -1471,6 +1470,7 @@ do_udp_sendmsg:
    ipc6.opt = opt;

    fl6.flowi6_proto = sk->sk_protocol;
    + fl6.flowi6_mark = ipc6.sockc.mark;
    fl6.daddr = *daddr;
    if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr))
    fl6.saddr = np->saddr;
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 02:40    [W:2.424 / U:0.720 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site