summaryrefslogtreecommitdiff
path: root/vswitchd
diff options
context:
space:
mode:
authorEelco Chaudron <echaudro@redhat.com>2021-06-10 11:24:15 +0200
committerIlya Maximets <i.maximets@ovn.org>2021-07-08 21:19:14 +0200
commite6ad4d8d9c9273f226ec9a993b64fccfb50bdf4c (patch)
tree230b18e5fbc47aa8367f6b2f0bd24993e77747c0 /vswitchd
parent355fef6f2ccbcf78797b938421cb4cef9b59af13 (diff)
downloadopenvswitch-e6ad4d8d9c9273f226ec9a993b64fccfb50bdf4c.tar.gz
conntrack: Document all-zero IP SNAT behavior and add a test case.
Currently, conntrack in the kernel has an undocumented feature referred to as all-zero IP address SNAT. Basically, when a source port collision is detected during the commit, the source port will be translated to an ephemeral port. If there is no collision, no SNAT is performed. This patchset documents this behavior and adds a self-test to verify it's not changing. In addition, a datapath feature flag is added for the all-zero IP SNAT case. This will help applications on top of OVS, like OVN, to determine this feature can be used. Signed-off-by: Eelco Chaudron <echaudro@redhat.com> Acked-by: Aaron Conole <aconole@redhat.com> Acked-by: Dumitru Ceara <dceara@redhat.com> Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org> Acked-by: Paolo Valerio <pvalerio@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'vswitchd')
-rw-r--r--vswitchd/vswitch.xml9
1 files changed, 9 insertions, 0 deletions
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 3522b2497..e8c0b02ef 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -6181,6 +6181,15 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \
True if the datapath supports OVS_ACTION_ATTR_DROP. If false,
explicit drop action will not be sent to the datapath.
</column>
+ <column name="capabilities" key="ct_zero_snat"
+ type='{"type": "boolean"}'>
+ True if the datapath supports all-zero SNAT. This is a special case
+ if the <code>src</code> IP address is configured as all 0's, i.e.,
+ <code>nat(src=0.0.0.0)</code>. In this case, when a source port
+ collision is detected during the commit, the source port will be
+ translated to an ephemeral port. If there is no collision, no SNAT
+ is performed.
+ </column>
</group>
<group title="Common Columns">