Jesper Dangaard Brouer
a0f3760d6c
traffic-pacing-edt: Handle if VLAN is offloaded to SKB metadata
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 21:19:10 +01:00
Jesper Dangaard Brouer
6a67b105ee
traffic-pacing-edt: Remember MTU setting on netdevices
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 20:53:22 +01:00
Jesper Dangaard Brouer
d8a992aab4
traffic-pacing-edt: Add IP wrapper functions
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 17:27:09 +01:00
Jesper Dangaard Brouer
1196c6cf14
traffic-pacing-edt: adjust parameters help txt to be more general
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 17:23:41 +01:00
Jesper Dangaard Brouer
82186cfe72
traffic-pacing-edt: script for VLAN setup
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 17:03:04 +01:00
Jesper Dangaard Brouer
9c5ccaed9b
traffic-pacing-edt: Simple VLAN parsing via parse_ethhdr_vlan
...
Using the XDP based ethhdr VLAN parser. This cannot handle
if the SKB don't have the VLAN inlined.
Static match on VLAN 16 as test case.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 16:23:46 +01:00
Jesper Dangaard Brouer
21ebc4d8cd
traffic-pacing-edt: Align map struct to cache-line size
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 15:56:31 +01:00
Jesper Dangaard Brouer
692202e60e
traffic-pacing-edt: use READ_ONCE and WRITE_ONCE via compiler.h
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 15:40:42 +01:00
Jesper Dangaard Brouer
9ea235637e
Add compiler.h to define some common compiler directives
...
This is taken from the Cilium project:
https://github.com/cilium/cilium/blob/master/bpf/include/bpf/compiler.h
The use-case was adding READ_ONCE and WRITE_ONCE, but via re-using
the Cilium version we get a lot more useful compiler annotations.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 15:38:15 +01:00
Jesper Dangaard Brouer
c0cd6aedba
parsing_helpers.h re-add IPv6 skip of extension headers
...
This code comes from xdp-tools repo.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 15:26:12 +01:00
Jesper Dangaard Brouer
097079cde1
Fix includes in parsing_helpers.h
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 15:17:00 +01:00
Jesper Dangaard Brouer
6ee640393b
Update parsing_helpers.h from xdp-tutorial
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-15 15:12:20 +01:00
Jesper Dangaard Brouer
4ded8f7015
traffic-pacing-edt: control latency via horizon drop
...
When number of parallel (iperf -P N) flows increase, then the latency
increase as well (measured via simple ping through router).
This can be controlled via a much tigher drop horizon.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 19:33:42 +01:00
Jesper Dangaard Brouer
1fb4483207
traffic-pacing-edt: tc_fq_pacer.sh adjust packet per flow_limit
...
This was causing strange issues, where a TCP single flow could not
achieve the correct bandwidth.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 18:44:40 +01:00
Jesper Dangaard Brouer
9f97d984cb
traffic-pacing-edt: edt_pacer02.c add ECN marking horizon
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 17:16:03 +01:00
Jesper Dangaard Brouer
5a3e52cf43
traffic-pacing-edt: Make fq script respect --remove
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 16:51:56 +01:00
Jesper Dangaard Brouer
55a8513e2c
traffic-pacing-edt: Play with edt_pacer02 drop horizon
...
This didn't help.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 16:51:11 +01:00
Jesper Dangaard Brouer
252a40763a
traffic-pacing-edt: Adjustments to HTB script to get closer to EDT system
...
These adjustment doesn't help, EDT is still closer to 1Gbit/s at wire-level.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 14:58:47 +01:00
Jesper Dangaard Brouer
a6294dd946
edt_pacer02: Use skb wire_len
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 14:51:30 +01:00
Jesper Dangaard Brouer
3969089c64
traffic-pacing-edt/tc_fq_pacer.sh: Add doc explaining
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 13:53:49 +01:00
Jesper Dangaard Brouer
a5ed0071f1
traffic-pacing-edt: Add tc_fq_pacer.sh script for MQ-FQ setup
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 13:43:42 +01:00
Jesper Dangaard Brouer
aae2db4496
traffic-pacing-edt/tc_htb_shaper.sh: Make it easy to remove HTB qdisc
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 13:09:39 +01:00
Jesper Dangaard Brouer
bcd6074567
traffic-pacing-edt: Add HTB shaper script
...
This is primary to comparing HTB shaper accuracy against EDT
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-11-14 12:41:22 +01:00
Jesper Dangaard Brouer
fe9c2ed2ea
Merge branch 'master' of github.com:xdp-project/bpf-examples
...
Merging to integrated local branch traffic-pacing-edt01 changes
for the traffic-pacing-edt example.
2020-11-14 12:10:32 +01:00
Jesper Dangaard Brouer
86750f321e
EDT: implement horizon drop
...
FQ-pacing qdisc also have horizon, but cannot use that, because this
BPF-prog will have updated map (t_last) on packet and assumes it got
its part of bandwidth.
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-14 12:06:25 +01:00
Jesper Dangaard Brouer
efcd3c81b0
Implement basic EDT with static defines
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-14 10:43:56 +01:00
Jesper Dangaard Brouer
f98780e588
Add params for choosing other bpf object files
...
Default to edt_pacer02.o
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 14:52:36 +01:00
Jesper Dangaard Brouer
42c1c99799
Add note to edt_pacer02 as it is non-functional atm
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 14:40:19 +01:00
Jesper Dangaard Brouer
98ca505bc3
Add edt_pacer02.c for testing basic access to needed ctx and helpers
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 14:24:51 +01:00
Jesper Dangaard Brouer
30e9bddd8b
Add iproute2_compat.h to get iproute2 map support
...
This is needed for pinning maps later.
Cannot use the binary compatible top-part of struct, due to the
need for pinning later.
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 13:53:04 +01:00
Jesper Dangaard Brouer
30e9f04cf3
Fixup mentions of "ingress"
...
This was partly copied from netoptimizer/network-testing script
that used this for testing ingress path.
Our use-case is egress code path.
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 13:21:45 +01:00
Jesper Dangaard Brouer
91a8e78a12
Introduce parameter --remove
...
Need an easy way to move the setup again.
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 13:14:42 +01:00
Jesper Dangaard Brouer
72d3bba6d9
Make use of the params variables limit listing filter setup
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 13:14:27 +01:00
Jesper Dangaard Brouer
35ffcec7c3
Add common parameters.sh for shell cmdline arguments
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 12:46:26 +01:00
Jesper Dangaard Brouer
f8546bbbce
Add shell script for easier loading TC BPF egress program
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 12:18:08 +01:00
Jesper Dangaard Brouer
984faedafb
Copy shell 'tc' helper functions from netoptimizer/network-testing
...
Taken from:
https://github.com/netoptimizer/network-testing/blob/master/tc/functions.sh
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 11:49:04 +01:00
Jesper Dangaard Brouer
3ef00744da
Add edt_pacer01 only containing dummy tc program.
...
Want to make sure make system works and I can test load this prog.
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 11:48:51 +01:00
Jesper Dangaard Brouer
f4846b8297
Start traffic-pacing-edt example
...
Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com >
2020-11-08 11:31:55 +01:00
Toke Høiland-Jørgensen
f2c4416baf
bpf-encap: Update example to use the BPF helper syntax agreed upon by upstream
...
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com >
2020-10-21 16:54:29 +02:00
Jesper Dangaard Brouer
bf1c03c959
Merge pull request #1 from netoptimizer/MTU-tests01.public
...
MTU testing
Simple TC-BPF program for testing different packets sizes that violate the MTU of the interface.
This is part of testing upstream kernel work, for removing the MTU limit in the BPF-helpers that change packet size, and instead add BPF-helper that can check or lookup interface MTU.
2020-10-15 16:37:14 +02:00
Jesper Dangaard Brouer
f2a13d942f
MTU-tests: Cycle through different MTU packet sizes
...
Encode this statically via C/BPF-code switch statement, and
have global counter cycles through these.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 22:10:28 +02:00
Jesper Dangaard Brouer
7c2badedd4
MTU-tests: Fix stripping object file from .BTF section
...
Shot myself in the foot with stripping ELF obj file.
This was the reason I could not load BPF program with TC.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 17:08:42 +02:00
Jesper Dangaard Brouer
78788141e4
MTU-tests: Use map as counter
...
This doesn't work. It compiles, but loading with tc breaks.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 16:25:03 +02:00
Jesper Dangaard Brouer
cbb2da1d05
MTU-tests: Loading via tc seems not to support global vars
...
This code only works because LLVM optimize it as a constant.
As soon at I try to use it as variable it breaks.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 15:58:15 +02:00
Jesper Dangaard Brouer
bfc08deedd
MTU-tests: Add README
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 15:37:05 +02:00
Jesper Dangaard Brouer
4f8b36e569
MTU-tests: iproute2 'tc' tool doesn't understand BTF debug info
...
It still works when loading, but results in a huge warning
which is really annoying.
Add a Makefile hack to strip the object file.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 15:35:08 +02:00
Jesper Dangaard Brouer
5f3898ca61
MTU-tests: Add encap header after adjusting pkt room
...
This makes it easier to see/decode packets via tcpdump.
Borrowing part of ../encap-forward/encap.h.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 15:34:50 +02:00
Jesper Dangaard Brouer
00eaf20fae
MTU-tests: Add tc_bpf program that increase packet size
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 15:34:37 +02:00
Jesper Dangaard Brouer
74bde6b32c
MTU-tests: Add new MTU-tests directory and Makefile
...
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com >
2020-10-13 15:04:22 +02:00
Toke Høiland-Jørgensen
40706ad9fa
lsm-nobpf: Check for presence of BPF LSM before loading
...
If the BPF LSM is compiled-in but not enabled, the loading of the BPF
program will succeed, but it won't actually do anything. Detect this
and abort rather than silently not working.
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk >
2020-10-12 16:53:24 +02:00