mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	net: sched: act_sample: add action cookie to sample
If the action has a user_cookie, pass it along to the sample so it can be easily identified. Reviewed-by: Michal Kubiak <michal.kubiak@intel.com> Reviewed-by: Aaron Conole <aconole@redhat.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Adrian Moreno <amorenoz@redhat.com> Link: https://patch.msgid.link/20240704085710.353845-3-amorenoz@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
		
							parent
							
								
									093b0f3665
								
							
						
					
					
						commit
						03448444ae
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		|  | @ -167,7 +167,9 @@ TC_INDIRECT_SCOPE int tcf_sample_act(struct sk_buff *skb, | |||
| { | ||||
| 	struct tcf_sample *s = to_sample(a); | ||||
| 	struct psample_group *psample_group; | ||||
| 	u8 cookie_data[TC_COOKIE_MAX_SIZE]; | ||||
| 	struct psample_metadata md = {}; | ||||
| 	struct tc_cookie *user_cookie; | ||||
| 	int retval; | ||||
| 
 | ||||
| 	tcf_lastuse_update(&s->tcf_tm); | ||||
|  | @ -189,6 +191,16 @@ TC_INDIRECT_SCOPE int tcf_sample_act(struct sk_buff *skb, | |||
| 		if (skb_at_tc_ingress(skb) && tcf_sample_dev_ok_push(skb->dev)) | ||||
| 			skb_push(skb, skb->mac_len); | ||||
| 
 | ||||
| 		rcu_read_lock(); | ||||
| 		user_cookie = rcu_dereference(a->user_cookie); | ||||
| 		if (user_cookie) { | ||||
| 			memcpy(cookie_data, user_cookie->data, | ||||
| 			       user_cookie->len); | ||||
| 			md.user_cookie = cookie_data; | ||||
| 			md.user_cookie_len = user_cookie->len; | ||||
| 		} | ||||
| 		rcu_read_unlock(); | ||||
| 
 | ||||
| 		md.trunc_size = s->truncate ? s->trunc_size : skb->len; | ||||
| 		psample_sample_packet(psample_group, skb, s->rate, &md); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Adrian Moreno
						Adrian Moreno