On 11/2/18 1:10 PM, Mike Manning wrote:
> diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
> index 8ca3eb06ba04..da453c7dfb75 100644
> --- a/net/ipv4/raw.c
> +++ b/net/ipv4/raw.c
> @@ -805,7 +805,7 @@ static int raw_recvmsg(struct sock *sk, struct msghdr 
> *msg, size_t len,
>       return copied;
>  }
>  
> -static int raw_init(struct sock *sk)
> +static int raw_sk_init(struct sock *sk)
>  {
>       struct raw_sock *rp = raw_sk(sk);
>  
> @@ -970,7 +970,7 @@ struct proto raw_prot = {
>       .connect           = ip4_datagram_connect,
>       .disconnect        = __udp_disconnect,
>       .ioctl             = raw_ioctl,
> -     .init              = raw_init,
> +     .init              = raw_sk_init,
>       .setsockopt        = raw_setsockopt,
>       .getsockopt        = raw_getsockopt,
>       .sendmsg           = raw_sendmsg,
> @@ -1133,4 +1133,16 @@ void __init raw_proc_exit(void)
>  {
>       unregister_pernet_subsys(&raw_net_ops);
>  }
> +
> +static void raw_sysctl_init(void)
> +{
> +#ifdef CONFIG_NET_L3_MASTER_DEV
> +     init_net.ipv4.sysctl_raw_l3mdev_accept = 1;
> +#endif

That is not propagated to new network namespaces:

# ip netns add ns1
# ip netns exec ns1 sysctl -a 2>/dev/null | grep l3mdev
net.ipv4.raw_l3mdev_accept = 0


> +}
> +
> +void __init raw_init(void)
> +{
> +     raw_sysctl_init();
> +}
>  #endif /* CONFIG_PROC_FS */

Reply via email to