Files
openflow/datapath/chain.h
T
Ben Pfaff a0fd7dde11 Add-on hardware tables initial implementation.
Incorporates suggestions from Justin.
2008-05-14 22:18:36 -07:00

37 lines
949 B
C

#ifndef CHAIN_H
#define CHAIN_H 1
#include <linux/types.h>
struct sw_flow;
struct sw_flow_key;
struct datapath;
#define TABLE_LINEAR_MAX_FLOWS 100
#define TABLE_HASH_MAX_FLOWS 65536
/* Set of tables chained together in sequence from cheap to expensive. */
#define CHAIN_MAX_TABLES 4
struct sw_chain {
int n_tables;
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 *);
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 *);
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 */