Lines Matching full:nat
55 OVS_CT_NAT = 1 << 0, /* NAT for committed connections only. */
56 OVS_CT_SRC_NAT = 1 << 1, /* Source NAT for NEW connections. */
57 OVS_CT_DST_NAT = 1 << 2, /* Destination NAT for NEW connections. */
66 u8 nat : 3; /* enum ovs_ct_nat */ member
76 struct nf_nat_range2 range; /* Only present for SRC NAT and DST NAT. */
234 * 'keep_nat_flags' is true, the existing NAT flags retained, else they are
498 /* Must invert the tuple if skb has been transformed by NAT. */ in ovs_ct_find_existing()
669 if (!(info->nat & OVS_CT_NAT)) in ovs_ct_nat()
671 if (info->nat & OVS_CT_SRC_NAT) in ovs_ct_nat()
673 if (info->nat & OVS_CT_DST_NAT) in ovs_ct_nat()
735 /* Clear CT state NAT flags to mark that we have not yet done in __ovs_ct_lookup()
736 * NAT after the nf_conntrack_in() call. We can actually clear in __ovs_ct_lookup()
741 /* Update the key, but keep the NAT flags. */ in __ovs_ct_lookup()
750 * helper, so that the helper knows about the NAT. We enforce in __ovs_ct_lookup()
751 * this by delaying both NAT and helper calls for unconfirmed in __ovs_ct_lookup()
753 * packets NAT and Helper may be called in either order. in __ovs_ct_lookup()
755 * NAT will be done only if the CT action has NAT, and only in __ovs_ct_lookup()
756 * once per packet (per zone), as guarded by the NAT bits in in __ovs_ct_lookup()
759 if (info->nat && !(key->ct_state & OVS_CS_F_NAT_MASK) && in __ovs_ct_lookup()
779 /* helper installed, add seqadj if NAT is required */ in __ovs_ct_lookup()
780 if (info->nat && !nfct_seqadj(ct)) { in __ovs_ct_lookup()
1086 OVS_NLERR(log, "Unknown NAT attribute (type=%d, max=%d)", in parse_nat()
1092 OVS_NLERR(log, "NAT attribute type %d has unexpected length (%d != %d)", in parse_nat()
1101 if (info->nat) { in parse_nat()
1102 OVS_NLERR(log, "Only one type of NAT may be specified"); in parse_nat()
1105 info->nat |= OVS_CT_NAT; in parse_nat()
1106 info->nat |= ((type == OVS_NAT_ATTR_SRC) in parse_nat()
1147 OVS_NLERR(log, "Unknown nat attribute (%d)", type); in parse_nat()
1153 OVS_NLERR(log, "NAT attribute has %d unknown bytes", rem); in parse_nat()
1156 if (!info->nat) { in parse_nat()
1160 "NAT flags may be given only when NAT range (SRC or DST) is also specified." in parse_nat()
1164 info->nat = OVS_CT_NAT; /* NAT existing connections. */ in parse_nat()
1167 "NAT attributes may be specified only when CT COMMIT flag is also specified." in parse_nat()
1197 /* NAT length is checked when parsing the nested attributes. */
1393 key->ip.proto, ct_info.nat, &ct_info.helper); in ovs_ct_copy_action()
1423 if (info->nat & OVS_CT_SRC_NAT) { in ovs_ct_nat_to_attr()
1426 } else if (info->nat & OVS_CT_DST_NAT) { in ovs_ct_nat_to_attr()
1520 if (ct_info->nat && !ovs_ct_nat_to_attr(ct_info, skb)) in ovs_ct_action_to_attr()
1539 if (ct_info->nat) in __ovs_ct_free_action()