Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1484525

Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets

From David Ahern <dsa@cumulusnetworks.com>
Newsgroups linux.kernel
Subject Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets
Date 2016-09-15 22:40 +0200
Message-ID <shLBT-3mv-7@gated-at.bofh.it> (permalink)
References <sgZGW-4VC-25@gated-at.bofh.it> <shKZb-2PE-7@gated-at.bofh.it> <shLsd-3j1-3@gated-at.bofh.it> <shLsd-3j1-1@gated-at.bofh.it> <shLBT-3mv-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 9/15/16 2:36 PM, Eric Dumazet wrote:
> On Thu, 2016-09-15 at 14:25 -0600, David Ahern wrote:
>> On 9/15/16 2:22 PM, Cyrill Gorcunov wrote:
>>>> ss -K is not working. Socket lookup fails to find a match due to a protocol mismatch.
>>>>
>>>> haven't had time to track down why there is a mismatch since the kill uses the socket returned
>>>> from the dump. Won't have time to come back to this until early next week.
>>>
>>> Have you ran iproute2 patched? I just ran ss -K and all sockets get closed
>>> (including raw ones), which actually kicked me off the testing machine sshd :/
>>
>> yes.
>>
> 
> And CONFIG_INET_DIAG_DESTROY is also set in your .config ?
yes

dsa@kenny:~/kernel.git$ grep INET_DIAG_DESTROY kbuild/perf/.config
CONFIG_INET_DIAG_DESTROY=y

raw_diag_destroy is getting called, but protocol is 255:

diff --git a/net/ipv4/raw_diag.c b/net/ipv4/raw_diag.c
index c730e14618ab..95542b3dad76 100644
--- a/net/ipv4/raw_diag.c
+++ b/net/ipv4/raw_diag.c
@@ -192,6 +192,11 @@ static int raw_diag_destroy(struct sk_buff *in_skb,
        struct sock *sk;

        sk = raw_sock_get(net, r);
+
+if (r->sdiag_family == AF_INET)
+pr_warn("raw_diag_destroy: family IPv4 protocol %d dst %pI4 src %pI4 dev %d sk %p\n",
+        r->sdiag_protocol, &r->id.idiag_dst[0], &r->id.idiag_src[0], r->id.idiag_if, sk);
+
        if (IS_ERR(sk))
                return PTR_ERR(sk);
        return sock_diag_destroy(sk, ECONNABORTED);



so it never finds a match to an actual raw socket:

diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index 03618ed03532..6d0489629e74 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -124,9 +124,14 @@ EXPORT_SYMBOL_GPL(raw_unhash_sk);
 struct sock *__raw_v4_lookup(struct net *net, struct sock *sk,
                unsigned short num, __be32 raddr, __be32 laddr, int dif)
 {
+pr_warn("num %d raddr %pI4 laddr %pI4 dif %d\n", num, &raddr, &laddr, dif);
+
        sk_for_each_from(sk) {
                struct inet_sock *inet = inet_sk(sk);

+pr_warn("sk: num %d raddr %pI4 laddr %pI4 dif %d\n",
+       inet->inet_num, &inet->inet_daddr, &inet->inet_rcv_saddr,sk->sk_bound_dev_if);
+
                if (net_eq(sock_net(sk), net) && inet->inet_num == num  &&
                    !(inet->inet_daddr && inet->inet_daddr != raddr)    &&
                    !(inet->inet_rcv_saddr && inet->inet_rcv_saddr != laddr) &&

so raw_abort is not called.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-13 19:30 +0200
  Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Greg <gvrose8192@gmail.com> - 2016-09-13 20:40 +0200
    Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets "Rustad, Mark D" <mark.d.rustad@intel.com> - 2016-09-13 22:20 +0200
      Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Greg <gvrose8192@gmail.com> - 2016-09-13 22:40 +0200
  Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-15 22:00 +0200
    Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-15 22:30 +0200
      Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-15 22:40 +0200
      Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Eric Dumazet <eric.dumazet@gmail.com> - 2016-09-15 22:40 +0200
    Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-15 22:30 +0200
      Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-15 23:00 +0200
        Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-15 23:10 +0200
          Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Eric Dumazet <eric.dumazet@gmail.com> - 2016-09-16 00:50 +0200
            Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-16 01:50 +0200
              Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-16 09:10 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-16 21:10 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-16 21:40 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-16 21:50 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-16 22:00 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-16 22:00 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-16 22:10 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets Cyrill Gorcunov <gorcunov@gmail.com> - 2016-09-20 23:20 +0200
                Re: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets David Ahern <dsa@cumulusnetworks.com> - 2016-09-16 21:40 +0200

csiph-web