ROFL-pipeline  v0.6.0dev
Data Structures | Macros | Typedefs | Enumerations | Functions
of1x_group_table.h File Reference

OpenFlow v1.0, 1.2 and 1.3.2 group table subsystem. More...

#include "rofl.h"
#include "of1x_statistics.h"
#include "of1x_action.h"
#include "of1x_flow_entry.h"
#include "of1x_group_types.h"
#include "../../../platform/lock.h"

Go to the source code of this file.

Data Structures

struct  of1x_bucket
 Group bucket. More...
 
struct  of1x_bucket_list
 Group bucket list. More...
 
struct  of1x_group
 Group structure definition. More...
 
struct  of1x_group_table_config_t
 
struct  of1x_group_table
 

Macros

#define OF1X_GROUP_MAX   0xffffff00
 
#define OF1X_GROUP_ALL   0xfffffffc /* Represents all groups for group delete commands. */
 
#define OF1X_GROUP_ANY   0xffffffff /* Wildcard group used only for flow stats */
 

Typedefs

typedef struct of1x_bucket of1x_bucket_t
 Group bucket. More...
 
typedef struct of1x_bucket_list of1x_bucket_list_t
 Group bucket list. More...
 
typedef struct of1x_group of1x_group_t
 Group structure definition. More...
 
typedef struct of1x_group_table of1x_group_table_t
 

Enumerations

enum  rofl_of1x_gm_result_t {
  ROFL_OF1X_GM_OK = 0, ROFL_OF1X_GM_EXISTS = 1, ROFL_OF1X_GM_INVAL = 2, ROFL_OF1X_GM_WEIGHT = 3,
  ROFL_OF1X_GM_OGRUPS = 4, ROFL_OF1X_GM_OBUCKETS = 5, ROFL_OF1X_GM_CHAIN = 6, ROFL_OF1X_GM_WATCH = 7,
  ROFL_OF1X_GM_LOOP = 8, ROFL_OF1X_GM_UNKGRP = 9, ROFL_OF1X_GM_CHNGRP = 10, ROFL_OF1X_GM_BTYPE = 11,
  ROFL_OF1X_GM_BCOMMAND = 12, ROFL_OF1X_GM_BBUCKET = 13, ROFL_OF1X_GM_BWATCH = 14, ROFL_OF1X_GM_EPERM = 15
}
 

Functions

ROFL_BEGIN_DECLS
of1x_group_table_t
of1x_init_group_table (struct of1x_pipeline *pipeline)
 Initializes the group table. More...
 
void of1x_destroy_group_table (of1x_group_table_t *gt)
 Destroys the group table. More...
 
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. More...
 
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. More...
 
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. More...
 
of1x_bucket_list_tof1x_init_bucket_list (void)
 Initializes a list of buckets. More...
 
void of1x_destroy_bucket_list (of1x_bucket_list_t *bc_list)
 Destroys the bucket list. More...
 
of1x_bucket_tof1x_init_bucket (uint16_t weight, uint32_t port, uint32_t group, of1x_action_group_t *actions)
 Initializes a bucket. More...
 
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. More...
 
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. More...
 
void __of12_set_group_table_defaults (of1x_group_table_t *gt)
 
void __of13_set_group_table_defaults (of1x_group_table_t *gt)
 
void of1x_dump_group_table (of1x_group_table_t *gt, bool raw_nbo)
 

Detailed Description

OpenFlow v1.0, 1.2 and 1.3.2 group table subsystem.

Author
Victor Alvarez<victor.alvarez (at) bisdn.de>, Marc Sune<marc.sune (at) bisdn.de>

Definition in file of1x_group_table.h.

Function Documentation

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.

Definition at line 190 of file of1x_group_table.c.