diff --git a/common/common_pdi.c b/common/common_pdi.c index 5c81de7..30396d3 100644 --- a/common/common_pdi.c +++ b/common/common_pdi.c @@ -162,7 +162,7 @@ pdi_rule_delete(struct pdi_map *map, struct pdi_key *key, uint32_t pref, int *nr node = pdi_rule_delete__(map, key, pref, nr); if (node != NULL) { - pdi_rule2str(node); + //pdi_rule2str(node); HASH_ITER(hh, node->hash, val, tmp) { HASH_DEL(node->hash, val); if (map->pdi_del_map_em) { diff --git a/common/llb_dpapi.h b/common/llb_dpapi.h index 4e3d09b..ea7e830 100644 --- a/common/llb_dpapi.h +++ b/common/llb_dpapi.h @@ -764,9 +764,9 @@ struct dp_nat_key { __u32 daddr[4]; __u16 dport; __u16 zone; - __u16 mark; - __u8 l4proto; - __u8 v6; + __u32 mark; + __u16 l4proto; + __u16 v6; }; #define NAT_LB_SEL_RR 0 diff --git a/kernel/llb_kern_natlbfwd.c b/kernel/llb_kern_natlbfwd.c index 9c3f126..0dba707 100644 --- a/kernel/llb_kern_natlbfwd.c +++ b/kernel/llb_kern_natlbfwd.c @@ -136,9 +136,9 @@ dp_do_nat(void *ctx, struct xfi *xf) } memset(&key, 0, sizeof(key)); - key.mark = (__u16)(xf->pm.dp_mark & 0xffff); + key.mark = xf->pm.dp_mark; - if (!(key.mark & 0x8000)) { + if (!(key.mark & 0x80000000)) { DP_XADDR_CP(key.daddr, xf->l34m.daddr); if (xf->l34m.nw_proto != IPPROTO_ICMP) { key.dport = xf->l34m.dest;