5. nBroker API¶
nBroker C API header file.
Defines
-
NBROKER_AUTO_RULE_ID
¶
-
NBROKER_FLAGS_FAST
¶ nbroker_init() flag: use best-effort rules insert for best insert performance (it does not return errors or the rule id)
-
CMD_QUEUE_ITEMS
¶
-
CMD_QUEUE_ITEMS_MASK
¶
Enums
-
enum
nbroker_rc_t
¶ Values:
-
NBROKER_RC_OK
= 0¶
-
NBROKER_RC_INTERNAL_ERROR
¶
-
NBROKER_RC_SYNTAX_ERROR
¶
-
NBROKER_RC_UNSUPPORTED_MODE
¶
-
NBROKER_RC_INVALID_DEVICE_PORT
¶
-
NBROKER_RC_INVALID_REDIRECTION_PORT
¶
-
NBROKER_RC_RULE_NOT_FOUND
¶
-
NBROKER_RC_RULE_EXISTS
¶
-
NBROKER_RC_DEVICE_COMMAND_ERROR
¶
-
NBROKER_RC_BAD_BINARY_VERSION
¶
-
NBROKER_RC_CONNECTION_ERROR
¶
-
NBROKER_RC_BUSY
¶
-
Functions
-
nbroker_rc_t
nbroker_init
(nbroker_t **bkr, u_int32_t flags)¶ Init the broker communication.
- Return
- The error code
- Parameters
bkr
: The broker handler (out)flags
: Option flags
-
nbroker_rc_t
nbroker_term
(nbroker_t *bkr)¶ Terminates the broker communication. The broker object is freed.
- Return
- The error code
- Parameters
bkr
: The broker handler
-
nbroker_rc_t
nbroker_set_default_policy
(nbroker_t *bkr, const char *port, nbroker_policy_t policy)¶ Set the default policy. The port parameter can be either the symbolic linux name or the numeric port id.
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namepolicy
: The default policy
-
nbroker_rc_t
nbroker_apply_pending_rules
(nbroker_t *bkr)¶ Apply pending rules (if any)
- Return
- The error code
- Parameters
bkr
: The broker handler
-
nbroker_rc_t
nbroker_set_default_steering
(nbroker_t *bkr, const char *port, const char *steer_to)¶ Set the default port redirection. The port parameter can be either the symbolic linux name or the numeric port id.
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namesteer_to
: The default destination port number or interface name
-
nbroker_rc_t
nbroker_set_filtering_rule
(nbroker_t *bkr, const char *port, u_int32_t *rule_id, const rrc_match_t *match, nbroker_policy_t policy)¶ Set a filtering rule for the specified match. On success, the rule_id will contain the newly set rule id.
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namerule_id
: The rule id. Use NBROKER_AUTO_RULE_ID as rule_id to use the internal rule id management (in/out)match
: The rule to matchpolicy
: The policy
-
nbroker_rc_t
nbroker_set_steering_rule
(nbroker_t *bkr, const char *port, u_int32_t *rule_id, const rrc_match_t *match, const char *steer_to)¶ Set a port redirection rule for the specified match.
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namerule_id
: The rule id. Use NBROKER_AUTO_RULE_ID as rule_id to use the internal rule id management. On success, the rule_id will contain the newly set rule id (in/out).match
: The rule to matchsteer_to
: The destination port number or interface name
-
nbroker_rc_t
nbroker_remove_rule_by_id
(nbroker_t *bkr, const char *port, u_int32_t rule_id, nbroker_filter_type_t filter_type)¶ Remove a rule by its rule id.
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namerule_id
: The rule idfilter_type
: The filter type
-
nbroker_rc_t
nbroker_remove_rule_by_match
(nbroker_t *bkr, const char *port, const rrc_match_t *match, nbroker_filter_type_t filter_type)¶ Remove the first rule matching the specifed match.
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namematch
: The rule to matchfilter_type
: The filter type
-
nbroker_rc_t
nbroker_list_rules
(nbroker_t *bkr, const char *port, nbroker_filter_type_t filter_type, u_int32_t *num_rules, nbroker_rule_t **rules)¶ List the active rules of the specified type and port
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namefilter_type
: The filter type to filter rules by typenum_rules
: The number of rules (out)rules
: The rules list (out)
-
nbroker_rc_t
nbroker_reset_rules
(nbroker_t *bkr, const char *port, nbroker_filter_type_t filter_type)¶ Reset all the rules of the specified type on the specified port. Note: the default rules are not affected
- Return
- The error code
- Parameters
bkr
: The broker handlerport
: The target port number or interface namefilter_type
: The filter type
-
nbroker_rc_t
nbroker_purge_idle_rules
(nbroker_t *bkr, u_int32_t idle_for)¶ Purge the rules which have been set more than idle_for seconds ago.
- Return
- The error code
- Parameters
bkr
: The broker handleridle_for
: The idle time (sec). Pass 0 for automatic purge.
-
nbroker_rc_t
nbroker_set_auto_purge
(nbroker_t *bkr, u_int32_t idle_for)¶ Enable old rules auto-purge. Periodically, rules older than idle_for will be purged.
- Return
- The error code
- Parameters
bkr
: The broker handleridle_for
: The idle time (sec). Pass 0 to disable automatic purge.
-
nbroker_rc_t
nbroker_ifname_to_internal_port
(nbroker_t *bkr, const char *ifname, u_int8_t *port)¶ Converts a linux interface name to the internal (pci) port index of the device.
- Return
- The error code
- Parameters
bkr
: The broker handlerifname
: The interface nameport
: The internal port number of the RRC switch bound to the specified interface (out)
-
nbroker_rc_t
nbroker_ifname_to_external_port
(nbroker_t *bkr, const char *ifname, u_int8_t *port)¶ Converts a linux interface name to the external port index of the device.
- Return
- The error code
- Parameters
bkr
: The broker handlerifname
: The interface nameport
: The external port number of the RRC switch bound to the specified interface (out)
-
rrc_match_t *
nbroker_parse_rule
(const char *rule)¶ Parses a rule in the broker BPF syntax and produce a rrc_match_t structure. NOTE: a mutex is aquired while performing grammar parsing.
- Return
- NULL on error, the rrc_match_t rule otherwise (it must be freed by the caller)
- Parameters
rule
: The BPF filter
-
struct
nbroker_rule_t
¶ Public Members
-
u_int32_t
rule_id
¶ The rule id
-
rrc_match_t
match
¶ The match filter
-
nbroker_policy_t
policy
¶ The rule policy, only used in filtering rules
-
u_int8_t
steer_to
¶ The redirection port, only used in steering rules
-
union nbroker_rule_t::[anonymous]
u
¶
-
u_int32_t
-
struct
cmd_desc_t
¶ Public Members
-
cmd_type_t
type
¶
-
char
port
[IFNAMSIZ
]¶
-
u_int32_t
rule_id
¶
-
rrc_match_t
match
¶
-
nbroker_policy_t
policy
¶
-
char
redirectionPort
[IFNAMSIZ
]¶
-
struct cmd_desc_t::[anonymous]
rule
¶
-
cmd_type_t
-
struct
cmd_queue_t
¶
-
struct
nbroker
¶