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