Acked-by: Jarno Rajahalme <[email protected]> > On May 1, 2017, at 12:58 PM, Joe Stringer <[email protected]> wrote: > > If there is no active ukey for a particular datapath flow, and it is > dumped from the datapath, then the revalidator threads will assemble a > ukey based on the datapath flow. This will allow tracking of the stats > for proper attribution, and future validation of the flow. > > However, until now when creating the ukey in this context, the ukey's > 'reval_seq' has been set to the current udpif's reval_seq. This implies > that the flow has been validated against the current flow table. > However, this is not true - The flow appeared in the datapath without > any prior knowledge in this OVS instance so we should set up the > reval_seq of the ukey to ensure that the flow will be validated during > the current dump/revalidation cycle. > > Refer also revalidate_ukey(). > > Fixes: 23597df05226 ("upcall: Create ukeys in handler threads.") > Signed-off-by: Joe Stringer <[email protected]> > --- > ofproto/ofproto-dpif-upcall.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c > index 18be901d0b8a..2e23fe702281 100644 > --- a/ofproto/ofproto-dpif-upcall.c > +++ b/ofproto/ofproto-dpif-upcall.c > @@ -1612,7 +1612,7 @@ ukey_create_from_dpif_flow(const struct udpif *udpif, > } > > dump_seq = seq_read(udpif->dump_seq); > - reval_seq = seq_read(udpif->reval_seq); > + reval_seq = seq_read(udpif->reval_seq) - 1; /* Ensure revalidation. */ > ofpbuf_use_const(&actions, &flow->actions, flow->actions_len); > *ukey = ukey_create__(flow->key, flow->key_len, > flow->mask, flow->mask_len, flow->ufid_present, > -- > 2.11.1 >
_______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
