1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun // Copyright (c) 2019 Facebook 3*4882a593Smuzhiyun #include <linux/bpf.h> 4*4882a593Smuzhiyun #include <bpf/bpf_helpers.h> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun char _license[] SEC("license") = "GPL"; 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun SEC("socket") combinations(volatile struct __sk_buff * skb)9*4882a593Smuzhiyunint combinations(volatile struct __sk_buff* skb) 10*4882a593Smuzhiyun { 11*4882a593Smuzhiyun int ret = 0, i; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #pragma nounroll 14*4882a593Smuzhiyun for (i = 0; i < 20; i++) 15*4882a593Smuzhiyun if (skb->len) 16*4882a593Smuzhiyun ret |= 1 << i; 17*4882a593Smuzhiyun return ret; 18*4882a593Smuzhiyun } 19