Thanks, I'll roll these in when I rebase and repost.

On Wed, Mar 12, 2014 at 12:32 PM, Ben Pfaff <b...@nicira.com> wrote:

> On Thu, Mar 06, 2014 at 05:20:30PM -0800, Joe Stringer wrote:
> > This patch adds a new object called 'struct xlate_cache' which can be
> > set in 'struct xlate_in', and passed to xlate_actions() to cache the
> > modules affected by this flow translation. Subsequently, the caller can
> > pass the xcache to xlate_from_cache() to credit stats and perform side
> > effects for a lower cost than full flow translation.
> >
> > Initial testing shows mild TCP CRR performance increase (~5%) and a
> > drastic decrease in flow dump duration. This is expected to allow
> > significantly more flows to be maintained in the datapath.
> >
> > Signed-off-by: Joe Stringer <joestrin...@nicira.com>
>
> I'm folding in some minor style fixes:
>
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index ecc545f..bd78cbc 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -3366,7 +3366,8 @@ xlate_credit_stats_dev(struct xc_entry *entry,
> struct dpif_flow_stats *push)
>  }
>
>  struct xlate_cache *
> -xlate_cache_new(void) {
> +xlate_cache_new(void)
> +{
>      struct xlate_cache *xc = xmalloc(sizeof *xc);
>
>      ofpbuf_init(&xc->entries, 512);
> @@ -3374,7 +3375,8 @@ xlate_cache_new(void) {
>  }
>
>  static struct xc_entry *
> -xlate_cache_add_entry(struct xlate_cache *xc, enum stats_type type) {
> +xlate_cache_add_entry(struct xlate_cache *xc, enum stats_type type)
> +{
>      struct xc_entry *entry;
>
>      entry = ofpbuf_put_uninit(&xc->entries, sizeof *entry);
> @@ -3395,7 +3397,8 @@ xlate_cache_normal(struct ofproto_dpif *ofproto,
> struct flow *flow, int vlan)
>          return;
>      }
>
> -    xbundle = lookup_input_bundle(xbridge, flow->in_port.ofp_port, false,
> NULL);
> +    xbundle = lookup_input_bundle(xbridge, flow->in_port.ofp_port, false,
> +                                  NULL);
>      if (!xbundle) {
>          return;
>      }
> @@ -3409,7 +3412,7 @@ xlate_from_cache(struct xlate_cache *xc, struct
> dpif_flow_stats *push)
>      struct xc_entry *entry;
>      struct ofpbuf entries = xc->entries;
>
> -    XC_ENTRY_FOR_EACH(entry, entries, xc) {
> +    XC_ENTRY_FOR_EACH (entry, entries, xc) {
>          switch (entry->type) {
>          case XC_RULE:
>              rule_dpif_credit_stats(entry->u.rule, push);
> @@ -3463,7 +3466,9 @@ xlate_dev_unref(struct xc_entry *entry)
>      }
>  }
>
> -void xlate_cache_clear(struct xlate_cache *xc) {
> +void
> +xlate_cache_clear(struct xlate_cache *xc)
> +{
>      struct xc_entry *entry;
>      struct ofpbuf entries;
>
> @@ -3471,7 +3476,7 @@ void xlate_cache_clear(struct xlate_cache *xc) {
>          return;
>      }
>
> -    XC_ENTRY_FOR_EACH(entry, entries, xc) {
> +    XC_ENTRY_FOR_EACH (entry, entries, xc) {
>          switch (entry->type) {
>          case XC_RULE:
>              rule_dpif_unref(entry->u.rule);
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to