Message ID | 20230823134102.1848881-1-nicolas.dichtel@6wind.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a4f39c9f14a634e4cd35fcd338c239d11fcc73fc |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v3] net: handle ARPHRD_PPP in dev_is_mac_header_xmit() | expand |
On Wed, Aug 23, 2023 at 03:41:02PM +0200, Nicolas Dichtel wrote: > The goal is to support a bpf_redirect() from an ethernet device (ingress) > to a ppp device (egress). > The l2 header is added automatically by the ppp driver, thus the ethernet > header should be removed. Reviewed-by: Guillaume Nault <gnault@redhat.com> > CC: stable@vger.kernel.org > Fixes: 27b29f63058d ("bpf: add bpf_redirect() helper") > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> > Tested-by: Siwar Zitouni <siwar.zitouni@6wind.com> > --- > > v2 -> v3: > - add a comment in the code > - rework the commit log > > v1 -> v2: > - I forgot the 'Tested-by' tag in the v1 :/ > > include/linux/if_arp.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h > index 1ed52441972f..10a1e81434cb 100644 > --- a/include/linux/if_arp.h > +++ b/include/linux/if_arp.h > @@ -53,6 +53,10 @@ static inline bool dev_is_mac_header_xmit(const struct net_device *dev) > case ARPHRD_NONE: > case ARPHRD_RAWIP: > case ARPHRD_PIMREG: > + /* PPP adds its l2 header automatically in ppp_start_xmit(). > + * This makes it look like an l3 device to __bpf_redirect() and tcf_mirred_init(). > + */ > + case ARPHRD_PPP: > return false; > default: > return true; > -- > 2.39.2 >
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Wed, 23 Aug 2023 15:41:02 +0200 you wrote: > The goal is to support a bpf_redirect() from an ethernet device (ingress) > to a ppp device (egress). > The l2 header is added automatically by the ppp driver, thus the ethernet > header should be removed. > > CC: stable@vger.kernel.org > Fixes: 27b29f63058d ("bpf: add bpf_redirect() helper") > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> > Tested-by: Siwar Zitouni <siwar.zitouni@6wind.com> > > [...] Here is the summary with links: - [net,v3] net: handle ARPHRD_PPP in dev_is_mac_header_xmit() https://git.kernel.org/netdev/net/c/a4f39c9f14a6 You are awesome, thank you!
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h index 1ed52441972f..10a1e81434cb 100644 --- a/include/linux/if_arp.h +++ b/include/linux/if_arp.h @@ -53,6 +53,10 @@ static inline bool dev_is_mac_header_xmit(const struct net_device *dev) case ARPHRD_NONE: case ARPHRD_RAWIP: case ARPHRD_PIMREG: + /* PPP adds its l2 header automatically in ppp_start_xmit(). + * This makes it look like an l3 device to __bpf_redirect() and tcf_mirred_init(). + */ + case ARPHRD_PPP: return false; default: return true;