git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for vendor-defined and variable-length actions.
[sliver-openvswitch.git]
/
datapath
/
chain.h
diff --git
a/datapath/chain.h
b/datapath/chain.h
index
fc07f51
..
26edd47
100644
(file)
--- a/
datapath/chain.h
+++ b/
datapath/chain.h
@@
-1,15
+1,16
@@
#ifndef CHAIN_H
#define CHAIN_H 1
#ifndef CHAIN_H
#define CHAIN_H 1
+#include <linux/types.h>
+
struct sw_flow;
struct sw_flow_key;
struct sw_flow;
struct sw_flow_key;
+struct ofp_action_header;
struct datapath;
#define TABLE_LINEAR_MAX_FLOWS 100
#define TABLE_HASH_MAX_FLOWS 65536
struct datapath;
#define TABLE_LINEAR_MAX_FLOWS 100
#define TABLE_HASH_MAX_FLOWS 65536
-#define TABLE_MAC_MAX_FLOWS 1024
-#define TABLE_MAC_NUM_BUCKETS 1024
/* Set of tables chained together in sequence from cheap to expensive. */
#define CHAIN_MAX_TABLES 4
/* Set of tables chained together in sequence from cheap to expensive. */
#define CHAIN_MAX_TABLES 4
@@
-18,14
+19,20
@@
struct sw_chain {
struct sw_table *tables[CHAIN_MAX_TABLES];
struct datapath *dp;
struct sw_table *tables[CHAIN_MAX_TABLES];
struct datapath *dp;
+ struct module *owner;
};
struct sw_chain *chain_create(struct datapath *);
struct sw_flow *chain_lookup(struct sw_chain *, const struct sw_flow_key *);
int chain_insert(struct sw_chain *, struct sw_flow *);
};
struct sw_chain *chain_create(struct datapath *);
struct sw_flow *chain_lookup(struct sw_chain *, const struct sw_flow_key *);
int chain_insert(struct sw_chain *, struct sw_flow *);
-int chain_delete(struct sw_chain *, const struct sw_flow_key *, int);
+int chain_modify(struct sw_chain *, const struct sw_flow_key *,
+ uint16_t, int, const struct ofp_action_header *, size_t);
+int chain_delete(struct sw_chain *, const struct sw_flow_key *, uint16_t, int);
int chain_timeout(struct sw_chain *);
void chain_destroy(struct sw_chain *);
int chain_timeout(struct sw_chain *);
void chain_destroy(struct sw_chain *);
-void chain_print_stats(struct sw_chain *);
+
+int chain_set_hw_hook(struct sw_table *(*create_hw_table)(void),
+ struct module *owner);
+void chain_clear_hw_hook(void);
#endif /* chain.h */
#endif /* chain.h */