[ovs-build] Passed: ovsrobot/ovs#2341 (series_162564 - a6052a5)

Travis CI builds at travis-ci.org
Thu Mar 5 12:46:49 UTC 2020

Build Update for ovsrobot/ovs

Build: #2341
Status: Passed

Duration: 48 mins and 40 secs
Commit: a6052a5 (series_162564)
Author: Dumitru Ceara
Message: conntrack: Reset ct_state when entering a new zone.

When a new conntrack zone is entered, the ct_state field is zeroed in
order to avoid using state information from different zones.

One such scenario is when a packet is double NATed. Assuming two zones
and 3 flows performing the following actions in order on the packet:
1. ct(zone=5,nat), recirc
2. ct(zone=1), recirc
3. ct(zone=1,nat)

If at step #1 the packet matches an existing NAT entry, it will get
translated and pkt->md.ct_state is set to CS_DST_NAT or CS_SRC_NAT.
At step #2 the new tuple might match an existing connection and
pkt->md.ct_zone is set to 1.
If at step #3 the packet matches an existing NAT entry in zone 1,
handle_nat() will be called to perform the translation but it will
return early because the packet's zone matches the conntrack zone and
the ct_state field still contains CS_DST_NAT or CS_SRC_NAT from the
translations in zone 5.

In order to reliably detect when a packet enters a new conntrack zone
we also need to make sure that the pkt->md.ct_zone is properly
initialized if pkt->md.ct_state is non-zero. This already happens for
most cases. The only exception is when matched conntrack connection is
of type CT_CONN_TYPE_UN_NAT and the master connection is missing. To
cover this path we now call write_ct_md() in that case too. Remove
setting the CS_TRACKED flag as in this case as it will be done by the
new call to write_ct_md().

Also, the error path above seems hard to hit as it would've caused a
crash due to dereferencing a NULL pointer when calling:
'ct_print_conn_info(conn, log_msg, VLL_INFO, true, true)'. This patch
changes the call to log the 'rev_conn' info instead.

CC: Darrell Ball <dlu998 at gmail.com>
Fixes: 967bb5c5cd90 ("conntrack: Add rcu support.")
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: 0-day Robot <robot at bytheb.org>

View the changeset: https://github.com/ovsrobot/ovs/commit/a6052a5ad412

View the full build log and details: https://travis-ci.org/ovsrobot/ovs/builds/658653689?utm_medium=notification&utm_source=email


You can unsubscribe from build emails from the ovsrobot/ovs repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=22285853&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email.
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-build/attachments/20200305/f7c2bae5/attachment.html>

More information about the build mailing list