5 #ifndef __OF1X_GROUP_TABLE_H__
6 #define __OF1X_GROUP_TABLE_H__
12 #include "of1x_group_types.h"
13 #include "../../../platform/lock.h"
15 #define OF1X_GROUP_MAX 0xffffff00
16 #define OF1X_GROUP_ALL 0xfffffffc
17 #define OF1X_GROUP_ANY 0xffffffff
43 unsigned int num_of_buckets;
62 platform_rwlock_t *rwlock;
67 unsigned int num_of_output_actions;
80 uint32_t num_of_entries;
82 platform_mutex_t *mutex;
83 platform_rwlock_t *rwlock;
95 ROFL_OF1X_GM_EXISTS = 1,
96 ROFL_OF1X_GM_INVAL = 2,
97 ROFL_OF1X_GM_WEIGHT = 3,
98 ROFL_OF1X_GM_OGRUPS = 4,
99 ROFL_OF1X_GM_OBUCKETS = 5,
100 ROFL_OF1X_GM_CHAIN = 6,
101 ROFL_OF1X_GM_WATCH = 7,
102 ROFL_OF1X_GM_LOOP = 8,
103 ROFL_OF1X_GM_UNKGRP = 9,
104 ROFL_OF1X_GM_CHNGRP = 10,
105 ROFL_OF1X_GM_BTYPE = 11,
106 ROFL_OF1X_GM_BCOMMAND = 12,
107 ROFL_OF1X_GM_BBUCKET = 13,
108 ROFL_OF1X_GM_BWATCH = 14,
109 ROFL_OF1X_GM_EPERM = 15,
110 }rofl_of1x_gm_result_t;
204 #endif // __OF1X_GROUP_TABLE_H__
struct of1x_bucket of1x_bucket_t
Group bucket.
struct of1x_group of1x_group_t
Group structure definition.
Group structure definition.
of1x_bucket_t * of1x_init_bucket(uint16_t weight, uint32_t port, uint32_t group, of1x_action_group_t *actions)
Initializes a bucket.
rofl_result_t of1x_insert_bucket_in_list(of1x_bucket_list_t *bu_list, of1x_bucket_t *bucket)
Inserts an initialized bucket in the list of buckets.
struct of1x_bucket_list of1x_bucket_list_t
Group bucket list.
rofl_of1x_gm_result_t of1x_group_modify(of1x_group_table_t *gt, of1x_group_type_t type, uint32_t id, of1x_bucket_list_t **buckets)
Modifies a group on the table.
enum of1x_group_type of1x_group_type_t
Group type.
of1x_bucket_list_t * of1x_init_bucket_list(void)
Initializes a list of buckets.
OpenFlow v1.0, 1.2 and 1.3.2 actions.
ROFL_BEGIN_DECLS of1x_group_table_t * of1x_init_group_table(struct of1x_pipeline *pipeline)
Initializes the group table.
void of1x_destroy_group_table(of1x_group_table_t *gt)
Destroys the group table.
Action group (apply-actions) structure.
rofl_of1x_gm_result_t of1x_group_delete(struct of1x_pipeline *pipeline, of1x_group_table_t *gt, uint32_t id)
Deletes a group of the table.
rofl_of1x_gm_result_t of1x_group_add(of1x_group_table_t *gt, of1x_group_type_t type, uint32_t id, of1x_bucket_list_t **buckets)
Adds a group to the table.
OpenFlow v1.0, 1.2 and 1.3.2 flow entry abstraction.
OpenFlow v1.0, 1.2 and 1.3.2 pipeline abstraction data structure.
OpenFlow v1.0, 1.2 and 1.3.2 statistics subsystem.
void of1x_destroy_bucket_list(of1x_bucket_list_t *bc_list)
Destroys the bucket list.
of1x_group_t * __of1x_group_search(of1x_group_table_t *gt, uint32_t id)
Searches in the table for an entry with a specific id returns pointer if found or NULL if not...