forked from mirrors/linux
		
	net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
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: 27b29f6305 ("bpf: add bpf_redirect() helper")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Tested-by: Siwar Zitouni <siwar.zitouni@6wind.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									84a58e6003
								
							
						
					
					
						commit
						a4f39c9f14
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		|  | @ -53,6 +53,10 @@ static inline bool dev_is_mac_header_xmit(const struct net_device *dev) | ||||||
| 	case ARPHRD_NONE: | 	case ARPHRD_NONE: | ||||||
| 	case ARPHRD_RAWIP: | 	case ARPHRD_RAWIP: | ||||||
| 	case ARPHRD_PIMREG: | 	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; | 		return false; | ||||||
| 	default: | 	default: | ||||||
| 		return true; | 		return true; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Nicolas Dichtel
						Nicolas Dichtel