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. */
239 * 'keep_nat_flags' is true, the existing NAT flags retained, else they are
503 /* Must invert the tuple if skb has been transformed by NAT. */ in ovs_ct_find_existing()
674 if (!(info->nat & OVS_CT_NAT)) in ovs_ct_nat()
676 if (info->nat & OVS_CT_SRC_NAT) in ovs_ct_nat()
678 if (info->nat & OVS_CT_DST_NAT) in ovs_ct_nat()
758 /* Clear CT state NAT flags to mark that we have not yet done in __ovs_ct_lookup()
759 * NAT after the nf_conntrack_in() call. We can actually clear in __ovs_ct_lookup()
764 /* Update the key, but keep the NAT flags. */ in __ovs_ct_lookup()
773 * helper, so that the helper knows about the NAT. We enforce in __ovs_ct_lookup()
774 * this by delaying both NAT and helper calls for unconfirmed in __ovs_ct_lookup()
776 * packets NAT and Helper may be called in either order. in __ovs_ct_lookup()
778 * NAT will be done only if the CT action has NAT, and only in __ovs_ct_lookup()
779 * once per packet (per zone), as guarded by the NAT bits in in __ovs_ct_lookup()
782 if (info->nat && !(key->ct_state & OVS_CS_F_NAT_MASK) && in __ovs_ct_lookup()
805 /* helper installed, add seqadj if NAT is required */ in __ovs_ct_lookup()
806 if (info->nat && !nfct_seqadj(ct)) { in __ovs_ct_lookup()
1118 OVS_NLERR(log, "Unknown NAT attribute (type=%d, max=%d)", in parse_nat()
1124 OVS_NLERR(log, "NAT attribute type %d has unexpected length (%d != %d)", in parse_nat()
1133 if (info->nat) { in parse_nat()
1134 OVS_NLERR(log, "Only one type of NAT may be specified"); in parse_nat()
1137 info->nat |= OVS_CT_NAT; in parse_nat()
1138 info->nat |= ((type == OVS_NAT_ATTR_SRC) in parse_nat()
1179 OVS_NLERR(log, "Unknown nat attribute (%d)", type); in parse_nat()
1185 OVS_NLERR(log, "NAT attribute has %d unknown bytes", rem); in parse_nat()
1188 if (!info->nat) { in parse_nat()
1192 "NAT flags may be given only when NAT range (SRC or DST) is also specified." in parse_nat()
1196 info->nat = OVS_CT_NAT; /* NAT existing connections. */ in parse_nat()
1199 "NAT attributes may be specified only when CT COMMIT flag is also specified." in parse_nat()
1229 /* NAT length is checked when parsing the nested attributes. */
1426 key->ip.proto, ct_info.nat, &ct_info.helper); in ovs_ct_copy_action()
1456 if (info->nat & OVS_CT_SRC_NAT) { in ovs_ct_nat_to_attr()
1459 } else if (info->nat & OVS_CT_DST_NAT) { in ovs_ct_nat_to_attr()
1553 if (ct_info->nat && !ovs_ct_nat_to_attr(ct_info, skb)) in ovs_ct_action_to_attr()
1572 if (ct_info->nat) in __ovs_ct_free_action()