- - - int xdp_program(struct xdp_md *ctx) { uint8_t *head = (uint8_t *)(long)(ctx->data); uint8_t *tail = (uint8_t *)(long)(ctx->data_end); struct eth *eth = (struct eth *)head; if (eth->type != htons(ETH_P_IP)) { return XDP_DROP; } return XDP_PASS; } A D - D 4 6 C D 6 D , DA D D CD D: A D A - CC D D: A D CD / 6 4 D D: CC 6 . 6 D D D: C CA C -: C 9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB
0VS--#%BUB1MBOF ) 9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB .AI E: " EA . " 1 L I E A : I M E M B : E 4.2 6P 4ND IA D E 2 M B 4NI DI IA E E D D E A E 24 P ) ) 0(0, 4 L 4 L 4 L 3 , B E , B E , , B E 2 , B E 6 3 3 3 3 ) (