Message ID | 1493086183-114264-1-git-send-email-jarno@ovn.org |
---|---|
State | Superseded |
Delegated to: | Joe Stringer |
Headers | show |
On 24 April 2017 at 19:09, Jarno Rajahalme <jarno@ovn.org> wrote: > Specify the event mask with CT commit including bits for CT features > exposed at the OVS interface (mark and label changes in addition to > basic creation and destruction of conntrack entries). > > Without this any listener of conntrack update events will typically > (depending on system configuration) receive events for each L4 (e.g., > TCP) state machine change, which can multiply the number of events > received per connection. > > By including the new, related, and destroy events any listener of new > conntrack events gets notified of new related and non-related > connections, and any listener of destroy events will get notified of > deleted (typically timed out) conntrack entries. > > By including the flags for mark and labels, any listener of conntrack > update events gets notified whenever the connmark or conntrack labels > are chnaged from the values reported within the new events. s/chnaged/changed/ > > VMware-BZ: #1837218 > Signed-off-by: Jarno Rajahalme <jarno@ovn.org> > --- Acked-by: Joe Stringer <joe@ovn.org>
> On Apr 27, 2017, at 10:18 AM, Joe Stringer <joe@ovn.org> wrote: > > On 24 April 2017 at 19:09, Jarno Rajahalme <jarno@ovn.org <mailto:jarno@ovn.org>> wrote: >> Specify the event mask with CT commit including bits for CT features >> exposed at the OVS interface (mark and label changes in addition to >> basic creation and destruction of conntrack entries). >> >> Without this any listener of conntrack update events will typically >> (depending on system configuration) receive events for each L4 (e.g., >> TCP) state machine change, which can multiply the number of events >> received per connection. >> >> By including the new, related, and destroy events any listener of new >> conntrack events gets notified of new related and non-related >> connections, and any listener of destroy events will get notified of >> deleted (typically timed out) conntrack entries. >> >> By including the flags for mark and labels, any listener of conntrack >> update events gets notified whenever the connmark or conntrack labels >> are chnaged from the values reported within the new events. > > s/chnaged/changed/ > >> >> VMware-BZ: #1837218 >> Signed-off-by: Jarno Rajahalme <jarno@ovn.org <mailto:jarno@ovn.org>> >> --- > > > Acked-by: Joe Stringer <joe@ovn.org <mailto:joe@ovn.org>> Thanks for the review! I need a review on the related windows-datapath change (“datapath-windows: Add missing IPCT_LABEL.”) before I can push this! Jarno
diff --git a/build-aux/extract-odp-netlink-h b/build-aux/extract-odp-netlink-h index 907a70a..7fb6ce8 100755 --- a/build-aux/extract-odp-netlink-h +++ b/build-aux/extract-odp-netlink-h @@ -19,6 +19,8 @@ $i\ #ifdef _WIN32\ #include "OvsDpInterfaceExt.h"\ #include "OvsDpInterfaceCtExt.h"\ +#else\ +#include "linux/netfilter/nf_conntrack_common.h"\ #endif\ # Use OVS's own struct eth_addr instead of a 6-byte char array. diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index d8c6a7c..21f2f7a 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -5351,6 +5351,9 @@ compose_conntrack_action(struct xlate_ctx *ctx, struct ofpact_conntrack *ofc) if (ofc->flags & NX_CT_F_COMMIT) { nl_msg_put_flag(ctx->odp_actions, ofc->flags & NX_CT_F_FORCE ? OVS_CT_ATTR_FORCE_COMMIT : OVS_CT_ATTR_COMMIT); + nl_msg_put_u32(ctx->odp_actions, OVS_CT_ATTR_EVENTMASK, + 1 << IPCT_NEW | 1 << IPCT_RELATED | 1 << IPCT_DESTROY | + 1 << IPCT_MARK | 1 << IPCT_LABEL); } nl_msg_put_u16(ctx->odp_actions, OVS_CT_ATTR_ZONE, zone); put_ct_mark(&ctx->xin->flow, ctx->odp_actions, ctx->wc);
Specify the event mask with CT commit including bits for CT features exposed at the OVS interface (mark and label changes in addition to basic creation and destruction of conntrack entries). Without this any listener of conntrack update events will typically (depending on system configuration) receive events for each L4 (e.g., TCP) state machine change, which can multiply the number of events received per connection. By including the new, related, and destroy events any listener of new conntrack events gets notified of new related and non-related connections, and any listener of destroy events will get notified of deleted (typically timed out) conntrack entries. By including the flags for mark and labels, any listener of conntrack update events gets notified whenever the connmark or conntrack labels are chnaged from the values reported within the new events. VMware-BZ: #1837218 Signed-off-by: Jarno Rajahalme <jarno@ovn.org> --- v2: More descriptive commit message. build-aux/extract-odp-netlink-h | 2 ++ ofproto/ofproto-dpif-xlate.c | 3 +++ 2 files changed, 5 insertions(+)