bpf: allow programs to write to certain skb fields
allow programs read/write skb->mark, tc_index fields and ((struct qdisc_skb_cb *)cb)->data. mark and tc_index are generically useful in TC. cb[0]-cb[4] are primarily used to pass arguments from one program to another called via bpf_tail_call() which can be seen in sockex3_kern.c example. All fields of 'struct __sk_buff' are readable to socket and tc_cls_act progs. mark, tc_index are writeable from tc_cls_act only. cb[0]-cb[4] are writeable by both sockets and tc_cls_act. Add verifier tests and improve sample code. Signed-off-by: Alexei Starovoitov <ast@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								3431205e03
							
						
					
				
			
			
				commit
				
					
						d691f9e8d4
					
				
			
		
					 6 changed files with 207 additions and 48 deletions
				
			
		|  | @ -248,6 +248,8 @@ struct __sk_buff { | |||
| 	__u32 priority; | ||||
| 	__u32 ingress_ifindex; | ||||
| 	__u32 ifindex; | ||||
| 	__u32 tc_index; | ||||
| 	__u32 cb[5]; | ||||
| }; | ||||
| 
 | ||||
| #endif /* _UAPI__LINUX_BPF_H__ */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alexei Starovoitov
				Alexei Starovoitov