Linux Audio

Check our new training course

Linux kernel drivers training

Mar 31-Apr 9, 2025, special US time zones
Register
Loading...
v6.13.7
 1// SPDX-License-Identifier: GPL-2.0
 2
 3#include <linux/bpf.h>
 4#include <bpf/bpf_helpers.h>
 5
 6#include "bpf_compiler.h"
 7
 8char _license[] SEC("license") = "GPL";
 9
10SEC("tc")
11int process(struct __sk_buff *skb)
12{
13	__pragma_loop_unroll_full
14	for (int i = 0; i < 5; i++) {
15		if (skb->cb[i] != i + 1)
16			return 1;
17		skb->cb[i]++;
18	}
19	skb->priority++;
20	skb->tstamp++;
21	skb->mark++;
22
23	if (skb->wire_len != 100)
24		return 1;
25	if (skb->gso_segs != 8)
26		return 1;
27	if (skb->gso_size != 10)
28		return 1;
29	if (skb->ingress_ifindex != 11)
30		return 1;
31	if (skb->ifindex != 1)
32		return 1;
33	if (skb->hwtstamp != 11)
34		return 1;
35
36	return 0;
37}
v5.9
 1// SPDX-License-Identifier: GPL-2.0
 2
 3#include <linux/bpf.h>
 4#include <bpf/bpf_helpers.h>
 5
 6int _version SEC("version") = 1;
 
 7char _license[] SEC("license") = "GPL";
 8
 9SEC("skb_ctx")
10int process(struct __sk_buff *skb)
11{
12	#pragma clang loop unroll(full)
13	for (int i = 0; i < 5; i++) {
14		if (skb->cb[i] != i + 1)
15			return 1;
16		skb->cb[i]++;
17	}
18	skb->priority++;
19	skb->tstamp++;
20	skb->mark++;
21
22	if (skb->wire_len != 100)
23		return 1;
24	if (skb->gso_segs != 8)
25		return 1;
26	if (skb->gso_size != 10)
 
 
 
 
 
 
27		return 1;
28
29	return 0;
30}