diff --git a/21-xdp/.gitignore b/21-xdp/.gitignore new file mode 100644 index 0000000..bbee7c8 --- /dev/null +++ b/21-xdp/.gitignore @@ -0,0 +1,10 @@ +.vscode +package.json +*.wasm +ewasm-skel.h +ecli +ewasm +*.o +*.skel.json +*.skel.yaml +package.yaml diff --git a/21-xdp/xdp.bpf.c b/21-xdp/xdp.bpf.c new file mode 100644 index 0000000..a27e475 --- /dev/null +++ b/21-xdp/xdp.bpf.c @@ -0,0 +1,17 @@ +#include "vmlinux.h" +#include + +/// @ifindex 1 +/// @flags 0 +/// @xdpopts {"old_prog_fd":0} +SEC("xdp") +int xdp_pass(struct xdp_md* ctx) { + void* data = (void*)(long)ctx->data; + void* data_end = (void*)(long)ctx->data_end; + int pkt_sz = data_end - data; + + bpf_printk("packet size is %d", pkt_sz); + return XDP_PASS; +} + +char __license[] SEC("license") = "GPL"; \ No newline at end of file