libnl 1.1.4
Modules | Data Structures

Modules

 Firewall Classifier
 
 Universal 32-bit Classifier
 

Data Structures

struct  rtnl_cls_ops
 Classifier operations. More...
 

Classifier Module API

int rtnl_cls_register (struct rtnl_cls_ops *cops)
 Register a classifier module.
 
int rtnl_cls_unregister (struct rtnl_cls_ops *cops)
 Unregister a classifier module.
 
struct rtnl_cls_ops__rtnl_cls_lookup_ops (const char *kind)
 
struct rtnl_cls_opsrtnl_cls_lookup_ops (struct rtnl_cls *cls)
 Lookup classifier operations for a classifier object.
 

Detailed Description

Function Documentation

◆ rtnl_cls_register()

int rtnl_cls_register ( struct rtnl_cls_ops cops)
Parameters
copsclassifier module operations

Definition at line 38 of file cls_api.c.

39{
40 struct rtnl_cls_ops *o, **op;
41
42 if (!cops->co_kind)
43 BUG();
44
45 for (op = &cls_ops_list; (o = *op) != NULL; op = &o->co_next)
46 if (!strcasecmp(cops->co_kind, o->co_kind))
47 return nl_errno(EEXIST);
48
49 cops->co_next = NULL;
50 *op = cops;
51
52 return 0;
53}
Classifier operations.
struct rtnl_cls_ops * co_next
INTERNAL (Do not use)
char co_kind[32]
Kind/Name of classifier.

References rtnl_cls_ops::co_kind, and rtnl_cls_ops::co_next.

◆ rtnl_cls_unregister()

int rtnl_cls_unregister ( struct rtnl_cls_ops cops)
Parameters
copsclassifier module operations

Definition at line 59 of file cls_api.c.

60{
61 struct rtnl_cls_ops *o, **op;
62
63 for (op = &cls_ops_list; (o = *op) != NULL; op = &o->co_next)
64 if (!strcasecmp(cops->co_kind, o->co_kind))
65 break;
66
67 if (!o)
68 return nl_errno(ENOENT);
69
70 *op = cops->co_next;
71
72 return 0;
73}

References rtnl_cls_ops::co_kind, and rtnl_cls_ops::co_next.

◆ __rtnl_cls_lookup_ops()

struct rtnl_cls_ops * __rtnl_cls_lookup_ops ( const char *  kind)

Definition at line 75 of file cls_api.c.

76{
77 struct rtnl_cls_ops *cops;
78
79 for (cops = cls_ops_list; cops; cops = cops->co_next)
80 if (!strcmp(kind, cops->co_kind))
81 return cops;
82
83 return NULL;
84}

◆ rtnl_cls_lookup_ops()

struct rtnl_cls_ops * rtnl_cls_lookup_ops ( struct rtnl_cls *  cls)
Parameters
clsClassifier object.
Returns
Classifier operations or NULL if not found.

Definition at line 92 of file cls_api.c.

93{
94 if (!cls->c_ops)
95 cls->c_ops = __rtnl_cls_lookup_ops(cls->c_kind);
96
97 return cls->c_ops;
98}