It will be used in an upcoming commit. Signed-off-by: Ben Pfaff <b...@nicira.com> --- ofproto/ofproto-dpif-xlate.c | 11 +++++++++-- ofproto/ofproto-dpif-xlate.h | 1 + ofproto/ofproto-dpif.c | 15 +++++++++------ 3 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index ed4c58c..8a8eb92 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -92,6 +92,7 @@ struct xbridge { /* Special rules installed by ofproto-dpif. */ struct rule_dpif *miss_rule; struct rule_dpif *no_packet_in_rule; + struct rule_dpif *drop_frags_rule; enum ofp_config_flags frag; /* Fragmentation handling. */ bool has_in_band; /* Bridge has in band control? */ @@ -365,6 +366,7 @@ static void xlate_xport_init(struct xlate_cfg *, struct xport *); static void xlate_xbridge_set(struct xbridge *, struct dpif *, struct rule_dpif *miss_rule, struct rule_dpif *no_packet_in_rule, + struct rule_dpif *drop_frags_rule, const struct mac_learning *, struct stp *, struct rstp *, const struct mcast_snooping *, const struct mbridge *, @@ -431,6 +433,7 @@ xlate_xbridge_set(struct xbridge *xbridge, struct dpif *dpif, struct rule_dpif *miss_rule, struct rule_dpif *no_packet_in_rule, + struct rule_dpif *drop_frags_rule, const struct mac_learning *ml, struct stp *stp, struct rstp *rstp, const struct mcast_snooping *ms, const struct mbridge *mbridge, @@ -489,6 +492,7 @@ xlate_xbridge_set(struct xbridge *xbridge, xbridge->frag = frag; xbridge->miss_rule = miss_rule; xbridge->no_packet_in_rule = no_packet_in_rule; + xbridge->drop_frags_rule = drop_frags_rule; xbridge->enable_recirc = enable_recirc; xbridge->variable_length_userdata = variable_length_userdata; xbridge->max_mpls_depth = max_mpls_depth; @@ -569,7 +573,8 @@ xlate_xbridge_copy(struct xbridge *xbridge) xlate_xbridge_set(new_xbridge, xbridge->dpif, xbridge->miss_rule, - xbridge->no_packet_in_rule, xbridge->ml, xbridge->stp, + xbridge->no_packet_in_rule, xbridge->drop_frags_rule, + xbridge->ml, xbridge->stp, xbridge->rstp, xbridge->ms, xbridge->mbridge, xbridge->sflow, xbridge->ipfix, xbridge->netflow, xbridge->frag, xbridge->forward_bpdu, @@ -721,6 +726,7 @@ void xlate_ofproto_set(struct ofproto_dpif *ofproto, const char *name, struct dpif *dpif, struct rule_dpif *miss_rule, struct rule_dpif *no_packet_in_rule, + struct rule_dpif *drop_frags_rule, const struct mac_learning *ml, struct stp *stp, struct rstp *rstp, const struct mcast_snooping *ms, const struct mbridge *mbridge, @@ -746,7 +752,8 @@ xlate_ofproto_set(struct ofproto_dpif *ofproto, const char *name, free(xbridge->name); xbridge->name = xstrdup(name); - xlate_xbridge_set(xbridge, dpif, miss_rule, no_packet_in_rule, ml, stp, + xlate_xbridge_set(xbridge, dpif, miss_rule, no_packet_in_rule, + drop_frags_rule, ml, stp, rstp, ms, mbridge, sflow, ipfix, netflow, frag, forward_bpdu, has_in_band, enable_recirc, variable_length_userdata, max_mpls_depth, diff --git a/ofproto/ofproto-dpif-xlate.h b/ofproto/ofproto-dpif-xlate.h index 5ef20b1..2f8cc0b 100644 --- a/ofproto/ofproto-dpif-xlate.h +++ b/ofproto/ofproto-dpif-xlate.h @@ -146,6 +146,7 @@ struct xlate_in { void xlate_ofproto_set(struct ofproto_dpif *, const char *name, struct dpif *, struct rule_dpif *miss_rule, struct rule_dpif *no_packet_in_rule, + struct rule_dpif *drop_frags_rule, const struct mac_learning *, struct stp *, struct rstp *, const struct mcast_snooping *, const struct mbridge *, const struct dpif_sflow *, diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 9f4dbc8..744850c 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -616,7 +616,8 @@ type_run(const char *type) xlate_txn_start(); xlate_ofproto_set(ofproto, ofproto->up.name, ofproto->backer->dpif, ofproto->miss_rule, - ofproto->no_packet_in_rule, ofproto->ml, + ofproto->no_packet_in_rule, + ofproto->drop_frags_rule, ofproto->ml, ofproto->stp, ofproto->rstp, ofproto->ms, ofproto->mbridge, ofproto->sflow, ofproto->ipfix, ofproto->netflow, ofproto->up.frag_handling, @@ -4409,11 +4410,13 @@ trace_resubmit(struct xlate_in *xin, struct rule_dpif *rule, int recurse) struct ds *result = trace->result; ds_put_char(result, '\n'); - trace_format_flow(result, recurse + 1, "Resubmitted flow", trace); - trace_format_regs(result, recurse + 1, "Resubmitted regs", trace); - trace_format_odp(result, recurse + 1, "Resubmitted odp", trace); - trace_format_megaflow(result, recurse + 1, "Resubmitted megaflow", trace); - trace_format_rule(result, recurse + 1, rule); + if (recurse) { + trace_format_flow(result, recurse, "Resubmitted flow", trace); + trace_format_regs(result, recurse, "Resubmitted regs", trace); + trace_format_odp(result, recurse, "Resubmitted odp", trace); + trace_format_megaflow(result, recurse, "Resubmitted megaflow", trace); + } + trace_format_rule(result, recurse, rule); } static void -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev