Bug #8242 ยป source-af-packet.c.patch
| source-af-packet.c 2026-01-21 08:48:06.340177352 +0100 | ||
|---|---|---|
|
keys[0]->dst = htonl(GET_IPV4_DST_ADDR_U32(p));
|
||
|
keys[0]->port16[0] = p->sp;
|
||
|
keys[0]->port16[1] = p->dp;
|
||
|
keys[0]->vlan0 = p->vlan_id[0];
|
||
|
keys[0]->vlan1 = p->vlan_id[1];
|
||
|
keys[0]->vlan2 = p->vlan_id[2];
|
||
|
keys[0]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[0]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[0]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
if (p->proto == IPPROTO_TCP) {
|
||
|
keys[0]->ip_proto = 1;
|
||
| ... | ... | |
|
keys[1]->dst = htonl(GET_IPV4_SRC_ADDR_U32(p));
|
||
|
keys[1]->port16[0] = p->dp;
|
||
|
keys[1]->port16[1] = p->sp;
|
||
|
keys[1]->vlan0 = p->vlan_id[0];
|
||
|
keys[1]->vlan1 = p->vlan_id[1];
|
||
|
keys[1]->vlan2 = p->vlan_id[2];
|
||
|
keys[1]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[1]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[1]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
keys[1]->ip_proto = keys[0]->ip_proto;
|
||
|
if (AFPInsertHalfFlow(p->afp_v.v4_map_fd, keys[1],
|
||
| ... | ... | |
|
}
|
||
|
keys[0]->port16[0] = p->sp;
|
||
|
keys[0]->port16[1] = p->dp;
|
||
|
keys[0]->vlan0 = p->vlan_id[0];
|
||
|
keys[0]->vlan1 = p->vlan_id[1];
|
||
|
keys[0]->vlan2 = p->vlan_id[2];
|
||
|
keys[0]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[0]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[0]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
if (p->proto == IPPROTO_TCP) {
|
||
|
keys[0]->ip_proto = 1;
|
||
| ... | ... | |
|
}
|
||
|
keys[1]->port16[0] = p->dp;
|
||
|
keys[1]->port16[1] = p->sp;
|
||
|
keys[1]->vlan0 = p->vlan_id[0];
|
||
|
keys[1]->vlan1 = p->vlan_id[1];
|
||
|
keys[1]->vlan2 = p->vlan_id[2];
|
||
|
keys[1]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[1]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[1]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
keys[1]->ip_proto = keys[0]->ip_proto;
|
||
|
if (AFPInsertHalfFlow(p->afp_v.v6_map_fd, keys[1],
|
||
| ... | ... | |
|
* (as in eBPF filter) so we need to pass from host to network order */
|
||
|
keys[0]->port16[0] = htons(p->sp);
|
||
|
keys[0]->port16[1] = htons(p->dp);
|
||
|
keys[0]->vlan0 = p->vlan_id[0];
|
||
|
keys[0]->vlan1 = p->vlan_id[1];
|
||
|
keys[0]->vlan2 = p->vlan_id[2];
|
||
|
keys[0]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[0]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[0]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
if (p->proto == IPPROTO_TCP) {
|
||
|
keys[0]->ip_proto = 1;
|
||
|
} else {
|
||
| ... | ... | |
|
keys[1]->dst = p->src.addr_data32[0];
|
||
|
keys[1]->port16[0] = htons(p->dp);
|
||
|
keys[1]->port16[1] = htons(p->sp);
|
||
|
keys[1]->vlan0 = p->vlan_id[0];
|
||
|
keys[1]->vlan1 = p->vlan_id[1];
|
||
|
keys[1]->vlan2 = p->vlan_id[2];
|
||
|
keys[1]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[1]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[1]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
keys[1]->ip_proto = keys[0]->ip_proto;
|
||
|
if (AFPInsertHalfFlow(p->afp_v.v4_map_fd, keys[1],
|
||
|
p->afp_v.nr_cpus) == 0) {
|
||
| ... | ... | |
|
}
|
||
|
keys[0]->port16[0] = htons(p->sp);
|
||
|
keys[0]->port16[1] = htons(p->dp);
|
||
|
keys[0]->vlan0 = p->vlan_id[0];
|
||
|
keys[0]->vlan1 = p->vlan_id[1];
|
||
|
keys[0]->vlan2 = p->vlan_id[2];
|
||
|
keys[0]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[0]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[0]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
if (p->proto == IPPROTO_TCP) {
|
||
|
keys[0]->ip_proto = 1;
|
||
|
} else {
|
||
| ... | ... | |
|
}
|
||
|
keys[1]->port16[0] = htons(p->dp);
|
||
|
keys[1]->port16[1] = htons(p->sp);
|
||
|
keys[1]->vlan0 = p->vlan_id[0];
|
||
|
keys[1]->vlan1 = p->vlan_id[1];
|
||
|
keys[1]->vlan2 = p->vlan_id[2];
|
||
|
keys[1]->vlan0 = p->vlan_id[0] & g_vlan_mask;
|
||
|
keys[1]->vlan1 = p->vlan_id[1] & g_vlan_mask;
|
||
|
keys[1]->vlan2 = p->vlan_id[2] & g_vlan_mask;
|
||
|
keys[1]->ip_proto = keys[0]->ip_proto;
|
||
|
if (AFPInsertHalfFlow(p->afp_v.v6_map_fd, keys[1],
|
||
|
p->afp_v.nr_cpus) == 0) {
|
||