libnl  1.1.4
Modules | Data Structures

Modules

 Class Based Queueing (CBQ)
 
 Differentiated Services Marker (DSMARK)
 
 Hierachical Token Bucket (HTB)
 

Data Structures

struct  rtnl_class_ops
 Class operations. More...
 

Module API

int rtnl_class_register (struct rtnl_class_ops *cops)
 Register a class module. More...
 
int rtnl_class_unregister (struct rtnl_class_ops *cops)
 Unregister a class module. More...
 
struct rtnl_class_ops__rtnl_class_lookup_ops (const char *kind)
 
struct rtnl_class_opsrtnl_class_lookup_ops (struct rtnl_class *class)
 Lookup class operations for a class object. More...
 

Detailed Description

Function Documentation

◆ rtnl_class_register()

int rtnl_class_register ( struct rtnl_class_ops cops)
Parameters
copsclass module operations

Definition at line 37 of file class_api.c.

References rtnl_class_ops::co_kind, and rtnl_class_ops::co_next.

38 {
39  struct rtnl_class_ops *o, **op;
40 
41  if (!cops->co_kind[0])
42  BUG();
43 
44  for (op = &class_ops_list; (o = *op) != NULL; op = &o->co_next)
45  if (!strcasecmp(cops->co_kind, o->co_kind))
46  return nl_errno(EEXIST);
47 
48  cops->co_next = NULL;
49  *op = cops;
50 
51  return 0;
52 }
Class operations.
Definition: class-modules.h:25
struct rtnl_class_ops * co_next
INTERNAL (Do not use)
Definition: class-modules.h:61
char co_kind[32]
Kind/Name of class.
Definition: class-modules.h:30

◆ rtnl_class_unregister()

int rtnl_class_unregister ( struct rtnl_class_ops cops)
Parameters
copsclass module operations

Definition at line 58 of file class_api.c.

References rtnl_class_ops::co_kind, and rtnl_class_ops::co_next.

59 {
60  struct rtnl_class_ops *o, **op;
61 
62  for (op = &class_ops_list; (o = *op) != NULL; op = &o->co_next)
63  if (!strcasecmp(cops->co_kind, o->co_kind))
64  break;
65 
66  if (!o)
67  return nl_errno(ENOENT);
68 
69  *op = cops->co_next;
70 
71  return 0;
72 }
Class operations.
Definition: class-modules.h:25
struct rtnl_class_ops * co_next
INTERNAL (Do not use)
Definition: class-modules.h:61
char co_kind[32]
Kind/Name of class.
Definition: class-modules.h:30

◆ rtnl_class_lookup_ops()

struct rtnl_class_ops* rtnl_class_lookup_ops ( struct rtnl_class *  class)
Parameters
classClass object.
Returns
Class operations or NULL if not found.

Definition at line 91 of file class_api.c.

92 {
93  if (!class->c_ops)
94  class->c_ops = __rtnl_class_lookup_ops(class->c_kind);
95 
96  return class->c_ops;
97 }