~ubuntu-branches/ubuntu/wily/openvswitch/wily

« back to all changes in this revision

Viewing changes to datapath/flow_table.h

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2015-08-10 11:35:15 UTC
  • mfrom: (1.1.30)
  • Revision ID: package-import@ubuntu.com-20150810113515-575vj06oq29emxsn
Tags: 2.4.0~git20150810.97bab95-0ubuntu1
* New upstream snapshot from 2.4 branch:
  - d/*: Align any relevant packaging changes with upstream.
* d/*: wrap-and-sort.
* d/openvswitch-{common,vswitch}.install: Correct install location for
  bash completion files.
* d/tests/openflow.py: Explicitly use ovs-testcontroller as provided
  by 2.4.0 release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
 
59
59
struct flow_table {
60
60
        struct table_instance __rcu *ti;
 
61
        struct table_instance __rcu *ufid_ti;
61
62
        struct mask_cache_entry __percpu *mask_cache;
62
63
        struct mask_array __rcu *mask_array;
63
64
        unsigned long last_rehash;
64
65
        unsigned int count;
 
66
        unsigned int ufid_count;
65
67
};
66
68
 
67
69
extern struct kmem_cache *flow_stats_cache;
73
75
void ovs_flow_free(struct sw_flow *, bool deferred);
74
76
 
75
77
int ovs_flow_tbl_init(struct flow_table *);
76
 
int ovs_flow_tbl_count(struct flow_table *table);
 
78
int ovs_flow_tbl_count(const struct flow_table *table);
77
79
void ovs_flow_tbl_destroy(struct flow_table *table);
78
80
int ovs_flow_tbl_flush(struct flow_table *flow_table);
79
81
 
80
82
int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
81
 
                        struct sw_flow_mask *mask);
 
83
                        const struct sw_flow_mask *mask);
82
84
void ovs_flow_tbl_remove(struct flow_table *table, struct sw_flow *flow);
83
85
int  ovs_flow_tbl_num_masks(const struct flow_table *table);
84
86
struct sw_flow *ovs_flow_tbl_dump_next(struct table_instance *table,
89
91
                                          u32 *n_mask_hit);
90
92
struct sw_flow *ovs_flow_tbl_lookup(struct flow_table *,
91
93
                                    const struct sw_flow_key *);
92
 
struct sw_flow *ovs_flow_tbl_lookup_exact(struct flow_table *,
93
 
                                          struct sw_flow_match *match);
 
94
struct sw_flow *ovs_flow_tbl_lookup_exact(struct flow_table *tbl,
 
95
                                          const struct sw_flow_match *match);
 
96
struct sw_flow *ovs_flow_tbl_lookup_ufid(struct flow_table *,
 
97
                                         const struct sw_flow_id *);
94
98
 
95
 
bool ovs_flow_cmp_unmasked_key(const struct sw_flow *flow,
96
 
                               struct sw_flow_match *match);
 
99
bool ovs_flow_cmp(const struct sw_flow *, const struct sw_flow_match *);
97
100
 
98
101
void ovs_flow_mask_key(struct sw_flow_key *dst, const struct sw_flow_key *src,
99
102
                       const struct sw_flow_mask *mask);