Disassembly of section socket1: bpf_prog1: ; { 0: bf 16 00 00 00 00 00 00 r6 = r1 ; int index = load_byte(skb, ETH_HLEN + offsetof(struct iphdr, protocol)); 1: 30 00 00 00 17 00 00 00 r0 = *(u8 *)skb[23] 2: 63 0a fc ff 00 00 00 00 *(u32 *)(r10 - 4) = r0 ; flow_mask_array[0].src = 0xf00; 3: b7 01 00 00 5c 11 00 00 r1 = 4444 4: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1 5: b7 01 00 00 00 0f 00 00 r1 = 3840 6: 7b 1a e0 ff 00 00 00 00 *(u64 *)(r10 - 32) = r1 ; if (skb->pkt_type != PACKET_OUTGOING) 7: 61 61 04 00 00 00 00 00 r1 = *(u32 *)(r6 + 4) 8: 55 01 08 00 04 00 00 00 if r1 != 4 goto 8 9: bf a2 00 00 00 00 00 00 r2 = r10 10: 07 02 00 00 fc ff ff ff r2 += -4 ; flow_mask_array[1].src = 4444; 11: bf a3 00 00 00 00 00 00 r3 = r10 12: 07 03 00 00 e8 ff ff ff r3 += -24 ; bpf_map_update_elem(&my_map, &index, &(flow_mask_array[1].src), BPF_ANY); 13: 18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0ll 15: b7 04 00 00 00 00 00 00 r4 = 0 16: 85 00 00 00 02 00 00 00 call 2 LBB0_2: ; } 17: b7 00 00 00 00 00 00 00 r0 = 0 18: 95 00 00 00 00 00 00 00 exit