mirror of
https://github.com/openvswitch/ovs
synced 2025-10-17 14:28:02 +00:00
More accurate wildcarding and fragment handling.
This patch gets rid of the need for having explicit padding in struct flow as new fields are being added. flow_wildcards_init_exact(), which used to set bits in both compiler generated and explicit padding, is removed. match_wc_init() is now used instead, which generates the mask based on a given flow, setting bits only in fields which make sense. Places where random bits were placed in struct flow have been changed to only set random bits on fields that are significant in the given context. This avoids setting padding bits. - lib/flow: - Properly initialize struct flow also in places we used to zero out padding before. - Add flow_random_hash_fields() used for testing. - Remove flow_wildcards_init_exact() to avoid initializing masks where compiler generated padding has bits set. - lib/match.c match_wc_init(): Wildcard transport layer fields for later fragments, remove match_init_exact(), which used flow_wildcards_init_exact(). - tests/test-flows.c: use match_wc_init() instead of match_init_exact() - tests/flowgen.pl: generate more accurate packets and flows when fragmenting, mark unavailable fields as wildcarded. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
committed by
Ben Pfaff
parent
a5ae88ff8a
commit
94639963bf
@@ -38,7 +38,6 @@ void match_init(struct match *,
|
||||
const struct flow *, const struct flow_wildcards *);
|
||||
void match_wc_init(struct match *match, const struct flow *flow);
|
||||
void match_init_catchall(struct match *);
|
||||
void match_init_exact(struct match *, const struct flow *);
|
||||
|
||||
void match_zero_wildcarded_fields(struct match *);
|
||||
|
||||
|
Reference in New Issue
Block a user