I'm going to drop this because the classifier code has changed so that it's no longer really relevant.
On Fri, Aug 21, 2015 at 10:21:40AM -0700, Justin Pettit wrote: > Don't let Keith see that comment. > > Acked-by: Justin Pettit <jpet...@nicira.com> > > --Justin > > > > On Aug 21, 2015, at 8:26 AM, Ben Pfaff <b...@nicira.com> wrote: > > > > Functions are nicer. > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > lib/classifier.c | 2 +- > > lib/flow.h | 16 ++++++++++------ > > 2 files changed, 11 insertions(+), 7 deletions(-) > > > > diff --git a/lib/classifier.c b/lib/classifier.c > > index e6227b9..a91d936 100644 > > --- a/lib/classifier.c > > +++ b/lib/classifier.c > > @@ -1680,7 +1680,7 @@ check_tries(struct trie_ctx trie_ctx[CLS_MAX_TRIES], > > unsigned int n_tries, > > uint8_t be64ofs = be32ofs / 2; > > > > /* Is the trie field within the current range of fields? */ > > - if (MINIFLOW_IN_MAP(range_map, be64ofs)) { > > + if (miniflow_in_map(range_map, be64ofs)) { > > /* On-demand trie lookup. */ > > if (!ctx->lookup_done) { > > memset(&ctx->match_plens, 0, sizeof ctx->match_plens); > > diff --git a/lib/flow.h b/lib/flow.h > > index d0a354c..da09c90 100644 > > --- a/lib/flow.h > > +++ b/lib/flow.h > > @@ -599,15 +599,19 @@ miniflow_get__(const struct miniflow *mf, size_t > > u64_idx) > > : miniflow_values_get__(miniflow_get_values(mf), mf->tnl_map, > > u64_idx); > > } > > > > -#define MINIFLOW_IN_MAP(MF, U64_IDX) \ > > - (OVS_LIKELY(U64_IDX >= FLOW_TNL_U64S) \ > > - ? (MF)->pkt_map & (UINT64_C(1) << ((U64_IDX) - FLOW_TNL_U64S)) \ > > - : (MF)->tnl_map & (UINT64_C(1) << (U64_IDX))) > > +static inline bool > > +miniflow_in_map(const struct miniflow *mf, size_t u64_idx) > > +{ > > + return (OVS_LIKELY(u64_idx >= FLOW_TNL_U64S) > > + ? mf->pkt_map & (UINT64_C(1) << (u64_idx - FLOW_TNL_U64S)) > > + : mf->tnl_map & (UINT64_C(1) << u64_idx)) != 0; > > + > > +} > > > > /* Get the value of 'FIELD' of an up to 8 byte wide integer type 'TYPE' of > > * a miniflow. */ > > #define MINIFLOW_GET_TYPE(MF, TYPE, OFS) \ > > - (MINIFLOW_IN_MAP(MF, (OFS) / sizeof(uint64_t)) \ > > + (miniflow_in_map(MF, (OFS) / sizeof(uint64_t)) \ > > ? ((OVS_FORCE const TYPE *)miniflow_get__(MF, (OFS) / > > sizeof(uint64_t))) \ > > [(OFS) % sizeof(uint64_t) / sizeof(TYPE)] \ > > : 0) > > @@ -696,7 +700,7 @@ minimask_is_catchall(const struct minimask *mask) > > static inline uint64_t miniflow_get(const struct miniflow *flow, > > unsigned int u64_ofs) > > { > > - return MINIFLOW_IN_MAP(flow, u64_ofs) > > + return miniflow_in_map(flow, u64_ofs) > > ? *miniflow_get__(flow, u64_ofs) : 0; > > } > > > > -- > > 2.1.3 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev