Message ID | 1521051401-26151-1-git-send-email-yihung.wei@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [ovs-dev] ofproto-dpif-xlate: Report ct fields changes in ofproto/trace | expand |
On Wed, Mar 14, 2018 at 11:16:41AM -0700, Yi-Hung Wei wrote: > With commit f6fabcc6 ("ofproto-dpif: Mark packets as "untracked" after > call to ct()", after the ct() action, the packet conntrack state is set > to an untracked state, and all the conntrack fields are cleared. > This patch updates ofproto/trace report to reflect this change, so that > it would be easier to debug OpenFlow pipeline with conntrack. > > Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com> Would you mind showing an example to provide context? Thanks, Ben.
On Wed, Mar 14, 2018 at 3:27 PM, Ben Pfaff <blp@ovn.org> wrote: > On Wed, Mar 14, 2018 at 11:16:41AM -0700, Yi-Hung Wei wrote: >> With commit f6fabcc6 ("ofproto-dpif: Mark packets as "untracked" after >> call to ct()", after the ct() action, the packet conntrack state is set >> to an untracked state, and all the conntrack fields are cleared. >> This patch updates ofproto/trace report to reflect this change, so that >> it would be easier to debug OpenFlow pipeline with conntrack. >> >> Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com> > > Would you mind showing an example to provide context? > Hi Ben, Here is a simplified version of what I was debugging using ofproto/trace. table=0, in_port=1, tcp, action=ct(table=1) table=1, tcp, action=resubmit(,2), resubmit(,3) table=2, ct_state=+trk+new, action=ct(commit) table=3, ct_state=+trk+new, action=output:2 table=3, ct_state=-trk, action=drop Basically, the controller is expecting the ct_sate to be +trk+new in table 3, however, it is clear in the first resubmit in table 2 (after ovs 2.9). Therefore, mentioning that in the ofproto/trace report would be helpful to know that the conntrack fields are actually cleared. -Yi-Hung
On Wed, Mar 14, 2018 at 04:14:58PM -0700, Yi-Hung Wei wrote: > On Wed, Mar 14, 2018 at 3:27 PM, Ben Pfaff <blp@ovn.org> wrote: > > On Wed, Mar 14, 2018 at 11:16:41AM -0700, Yi-Hung Wei wrote: > >> With commit f6fabcc6 ("ofproto-dpif: Mark packets as "untracked" after > >> call to ct()", after the ct() action, the packet conntrack state is set > >> to an untracked state, and all the conntrack fields are cleared. > >> This patch updates ofproto/trace report to reflect this change, so that > >> it would be easier to debug OpenFlow pipeline with conntrack. > >> > >> Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com> > > > > Would you mind showing an example to provide context? > > > > Hi Ben, > > Here is a simplified version of what I was debugging using ofproto/trace. > > > table=0, in_port=1, tcp, action=ct(table=1) > > table=1, tcp, action=resubmit(,2), resubmit(,3) > > table=2, ct_state=+trk+new, action=ct(commit) > > table=3, ct_state=+trk+new, action=output:2 > table=3, ct_state=-trk, action=drop > > > Basically, the controller is expecting the ct_sate to be +trk+new in > table 3, however, it is clear in the first resubmit in table 2 (after > ovs 2.9). Therefore, mentioning that in the ofproto/trace report > would be helpful to know that the conntrack fields are actually > cleared. Thanks. I applied this to master.
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index bc6429c25346..104315ff53b6 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -5750,6 +5750,8 @@ compose_conntrack_action(struct xlate_ctx *ctx, struct ofpact_conntrack *ofc, /* The ct_* fields are only available in the scope of the 'recirc_table' * call chain. */ flow_clear_conntrack(&ctx->xin->flow); + xlate_report(ctx, OFT_DETAIL, "Sets the packet to an untracked state, " + "and clears all the conntrack fields."); ctx->conntracked = false; }
With commit f6fabcc6 ("ofproto-dpif: Mark packets as "untracked" after call to ct()", after the ct() action, the packet conntrack state is set to an untracked state, and all the conntrack fields are cleared. This patch updates ofproto/trace report to reflect this change, so that it would be easier to debug OpenFlow pipeline with conntrack. Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com> --- ofproto/ofproto-dpif-xlate.c | 2 ++ 1 file changed, 2 insertions(+)