X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fflow.h;h=e63e4e2b285018bdb96f5cf266d0317b8e6ade27;hb=28c5588e8e1a8d091c5d2275232c35f2968a97fa;hp=e8066aa03bee52211382217a47dc676aabb8c8d0;hpb=2abf78ff5562b9550558c52b2a16431de71a3378;p=sliver-openvswitch.git diff --git a/lib/flow.h b/lib/flow.h index e8066aa03..e63e4e2b2 100644 --- a/lib/flow.h +++ b/lib/flow.h @@ -444,6 +444,7 @@ static inline ovs_be32 miniflow_get_be32(const struct miniflow *, static inline uint16_t miniflow_get_vid(const struct miniflow *); static inline uint16_t miniflow_get_tcp_flags(const struct miniflow *); static inline ovs_be64 miniflow_get_metadata(const struct miniflow *); +static inline uint8_t miniflow_get_u8(const struct miniflow *, unsigned int ofs); bool miniflow_equal(const struct miniflow *a, const struct miniflow *b); bool miniflow_equal_in_minimask(const struct miniflow *a, @@ -458,6 +459,7 @@ uint32_t miniflow_hash_in_minimask(const struct miniflow *, uint64_t miniflow_get_map_in_range(const struct miniflow *miniflow, uint8_t start, uint8_t end, unsigned int *offset); +uint32_t miniflow_hash_5tuple(const struct miniflow *flow, uint32_t basis); /* Compressed flow wildcards. */ @@ -615,4 +617,10 @@ static inline bool is_icmpv6(const struct flow *flow) && flow->nw_proto == IPPROTO_ICMPV6); } +static inline bool is_stp(const struct flow *flow) +{ + return (eth_addr_equals(flow->dl_dst, eth_addr_stp) + && flow->dl_type == htons(FLOW_DL_TYPE_NONE)); +} + #endif /* flow.h */