filter: add XOR operation
Add XOR instruction fo BPF machine. Needed for computing packet hashes. Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								302d663740
							
						
					
				
			
			
				commit
				
					
						ffe06c17af
					
				
			
		
					 2 changed files with 7 additions and 1 deletions
				
			
		|  | @ -126,7 +126,8 @@ struct sock_fprog {	/* Required for SO_ATTACH_FILTER. */ | |||
| #define SKF_AD_HATYPE	28 | ||||
| #define SKF_AD_RXHASH	32 | ||||
| #define SKF_AD_CPU	36 | ||||
| #define SKF_AD_MAX	40 | ||||
| #define SKF_AD_ALU_XOR_X	40 | ||||
| #define SKF_AD_MAX	44 | ||||
| #define SKF_NET_OFF   (-0x100000) | ||||
| #define SKF_LL_OFF    (-0x200000) | ||||
| 
 | ||||
|  | @ -231,6 +232,7 @@ enum { | |||
| 	BPF_S_ANC_HATYPE, | ||||
| 	BPF_S_ANC_RXHASH, | ||||
| 	BPF_S_ANC_CPU, | ||||
| 	BPF_S_ANC_ALU_XOR_X, | ||||
| }; | ||||
| 
 | ||||
| #endif /* __KERNEL__ */ | ||||
|  |  | |||
|  | @ -315,6 +315,9 @@ load_b: | |||
| 		case BPF_S_ANC_CPU: | ||||
| 			A = raw_smp_processor_id(); | ||||
| 			continue; | ||||
| 		case BPF_S_ANC_ALU_XOR_X: | ||||
| 			A ^= X; | ||||
| 			continue; | ||||
| 		case BPF_S_ANC_NLATTR: { | ||||
| 			struct nlattr *nla; | ||||
| 
 | ||||
|  | @ -559,6 +562,7 @@ int sk_chk_filter(struct sock_filter *filter, unsigned int flen) | |||
| 			ANCILLARY(HATYPE); | ||||
| 			ANCILLARY(RXHASH); | ||||
| 			ANCILLARY(CPU); | ||||
| 			ANCILLARY(ALU_XOR_X); | ||||
| 			} | ||||
| 		} | ||||
| 		ftest->code = code; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jiri Pirko
				Jiri Pirko