libnl 3.7.0
|
Allocation/Freeing | |
struct rtnl_rule * | rtnl_rule_alloc (void) |
void | rtnl_rule_put (struct rtnl_rule *rule) |
Cache Management | |
int | rtnl_rule_alloc_cache (struct nl_sock *sock, int family, struct nl_cache **result) |
Build a rule cache including all rules currently configured in the kernel. More... | |
Rule Addition | |
int | rtnl_rule_build_add_request (struct rtnl_rule *tmpl, int flags, struct nl_msg **result) |
Build netlink request message to add a new rule. More... | |
int | rtnl_rule_add (struct nl_sock *sk, struct rtnl_rule *tmpl, int flags) |
Add a new rule. More... | |
Rule Deletion | |
int | rtnl_rule_build_delete_request (struct rtnl_rule *rule, int flags, struct nl_msg **result) |
Build a netlink request message to delete a rule. More... | |
int | rtnl_rule_delete (struct nl_sock *sk, struct rtnl_rule *rule, int flags) |
Delete a rule. More... | |
Attribute Modification | |
void | rtnl_rule_set_family (struct rtnl_rule *rule, int family) |
int | rtnl_rule_get_family (struct rtnl_rule *rule) |
void | rtnl_rule_set_prio (struct rtnl_rule *rule, uint32_t prio) |
uint32_t | rtnl_rule_get_prio (struct rtnl_rule *rule) |
void | rtnl_rule_set_mark (struct rtnl_rule *rule, uint32_t mark) |
uint32_t | rtnl_rule_get_mark (struct rtnl_rule *rule) |
void | rtnl_rule_set_mask (struct rtnl_rule *rule, uint32_t mask) |
uint32_t | rtnl_rule_get_mask (struct rtnl_rule *rule) |
void | rtnl_rule_set_table (struct rtnl_rule *rule, uint32_t table) |
uint32_t | rtnl_rule_get_table (struct rtnl_rule *rule) |
void | rtnl_rule_set_dsfield (struct rtnl_rule *rule, uint8_t dsfield) |
uint8_t | rtnl_rule_get_dsfield (struct rtnl_rule *rule) |
int | rtnl_rule_set_src (struct rtnl_rule *rule, struct nl_addr *src) |
struct nl_addr * | rtnl_rule_get_src (struct rtnl_rule *rule) |
int | rtnl_rule_set_dst (struct rtnl_rule *rule, struct nl_addr *dst) |
struct nl_addr * | rtnl_rule_get_dst (struct rtnl_rule *rule) |
int | rtnl_rule_set_iif (struct rtnl_rule *rule, const char *dev) |
char * | rtnl_rule_get_iif (struct rtnl_rule *rule) |
int | rtnl_rule_set_oif (struct rtnl_rule *rule, const char *dev) |
char * | rtnl_rule_get_oif (struct rtnl_rule *rule) |
void | rtnl_rule_set_action (struct rtnl_rule *rule, uint8_t action) |
uint8_t | rtnl_rule_get_action (struct rtnl_rule *rule) |
void | rtnl_rule_set_l3mdev (struct rtnl_rule *rule, int value) |
Set l3mdev value of the rule (FRA_L3MDEV) More... | |
int | rtnl_rule_get_l3mdev (struct rtnl_rule *rule) |
Get l3mdev value of the rule (FRA_L3MDEV) More... | |
int | rtnl_rule_set_protocol (struct rtnl_rule *rule, uint8_t protocol) |
int | rtnl_rule_get_protocol (struct rtnl_rule *rule, uint8_t *protocol) |
int | rtnl_rule_set_ipproto (struct rtnl_rule *rule, uint8_t ip_proto) |
int | rtnl_rule_get_ipproto (struct rtnl_rule *rule, uint8_t *ip_proto) |
int | rtnl_rule_set_sport (struct rtnl_rule *rule, uint16_t sport) |
int | rtnl_rule_set_sport_range (struct rtnl_rule *rule, uint16_t start, uint16_t end) |
int | rtnl_rule_get_sport (struct rtnl_rule *rule, uint16_t *start, uint16_t *end) |
int | rtnl_rule_set_dport (struct rtnl_rule *rule, uint16_t dport) |
int | rtnl_rule_set_dport_range (struct rtnl_rule *rule, uint16_t start, uint16_t end) |
int | rtnl_rule_get_dport (struct rtnl_rule *rule, uint16_t *start, uint16_t *end) |
void | rtnl_rule_set_realms (struct rtnl_rule *rule, uint32_t realms) |
uint32_t | rtnl_rule_get_realms (struct rtnl_rule *rule) |
void | rtnl_rule_set_goto (struct rtnl_rule *rule, uint32_t ref) |
uint32_t | rtnl_rule_get_goto (struct rtnl_rule *rule) |
int rtnl_rule_alloc_cache | ( | struct nl_sock * | sock, |
int | family, | ||
struct nl_cache ** | result | ||
) |
Build a rule cache including all rules currently configured in the kernel.
sock | Netlink socket. |
family | Address family or AF_UNSPEC. |
result | Pointer to store resulting cache. |
Allocates a new rule cache, initializes it properly and updates it to include all rules currently configured in the kernel.
Definition at line 399 of file rule.c.
References nl_cache_alloc(), and nl_cache_refill().
int rtnl_rule_build_add_request | ( | struct rtnl_rule * | tmpl, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build netlink request message to add a new rule.
tmpl | template with data of new rule |
flags | additional netlink message flags |
result | Result pointer |
Builds a new netlink message requesting a addition of a new rule. The netlink message header isn't fully equipped with all relevant fields and must thus be sent out via nl_send_auto_complete() or supplemented as needed. tmpl must contain the attributes of the new address set via rtnl_rule_set_*
functions.
Definition at line 524 of file rule.c.
Referenced by rtnl_rule_add().
int rtnl_rule_add | ( | struct nl_sock * | sk, |
struct rtnl_rule * | tmpl, | ||
int | flags | ||
) |
Add a new rule.
sk | Netlink socket. |
tmpl | template with requested changes |
flags | additional netlink message flags |
Builds a netlink message by calling rtnl_rule_build_add_request(), sends the request to the kernel and waits for the next ACK to be received and thus blocks until the request has been fullfilled.
Definition at line 543 of file rule.c.
References nl_send_auto_complete(), nlmsg_free(), and rtnl_rule_build_add_request().
int rtnl_rule_build_delete_request | ( | struct rtnl_rule * | rule, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build a netlink request message to delete a rule.
rule | rule to delete |
flags | additional netlink message flags |
result | Result pointer |
Builds a new netlink message requesting a deletion of a rule. The netlink message header isn't fully equipped with all relevant fields and must thus be sent out via nl_send_auto_complete() or supplemented as needed. rule must point to an existing address.
Definition at line 580 of file rule.c.
Referenced by rtnl_rule_delete().
int rtnl_rule_delete | ( | struct nl_sock * | sk, |
struct rtnl_rule * | rule, | ||
int | flags | ||
) |
Delete a rule.
sk | Netlink socket. |
rule | rule to delete |
flags | additional netlink message flags |
Builds a netlink message by calling rtnl_rule_build_delete_request(), sends the request to the kernel and waits for the next ACK to be received and thus blocks until the request has been fullfilled.
Definition at line 598 of file rule.c.
References nl_send_auto_complete(), nlmsg_free(), and rtnl_rule_build_delete_request().
void rtnl_rule_set_family | ( | struct rtnl_rule * | rule, |
int | family | ||
) |
void rtnl_rule_set_prio | ( | struct rtnl_rule * | rule, |
uint32_t | prio | ||
) |
void rtnl_rule_set_mark | ( | struct rtnl_rule * | rule, |
uint32_t | mark | ||
) |
void rtnl_rule_set_mask | ( | struct rtnl_rule * | rule, |
uint32_t | mask | ||
) |
void rtnl_rule_set_table | ( | struct rtnl_rule * | rule, |
uint32_t | table | ||
) |
void rtnl_rule_set_dsfield | ( | struct rtnl_rule * | rule, |
uint8_t | dsfield | ||
) |
int rtnl_rule_set_src | ( | struct rtnl_rule * | rule, |
struct nl_addr * | src | ||
) |
struct nl_addr * rtnl_rule_get_src | ( | struct rtnl_rule * | rule | ) |
int rtnl_rule_set_dst | ( | struct rtnl_rule * | rule, |
struct nl_addr * | dst | ||
) |
struct nl_addr * rtnl_rule_get_dst | ( | struct rtnl_rule * | rule | ) |
int rtnl_rule_set_iif | ( | struct rtnl_rule * | rule, |
const char * | dev | ||
) |
int rtnl_rule_set_oif | ( | struct rtnl_rule * | rule, |
const char * | dev | ||
) |
void rtnl_rule_set_action | ( | struct rtnl_rule * | rule, |
uint8_t | action | ||
) |
void rtnl_rule_set_l3mdev | ( | struct rtnl_rule * | rule, |
int | value | ||
) |
int rtnl_rule_get_l3mdev | ( | struct rtnl_rule * | rule | ) |
int rtnl_rule_set_protocol | ( | struct rtnl_rule * | rule, |
uint8_t | protocol | ||
) |
int rtnl_rule_get_protocol | ( | struct rtnl_rule * | rule, |
uint8_t * | protocol | ||
) |
int rtnl_rule_set_ipproto | ( | struct rtnl_rule * | rule, |
uint8_t | ip_proto | ||
) |
int rtnl_rule_get_ipproto | ( | struct rtnl_rule * | rule, |
uint8_t * | ip_proto | ||
) |
int rtnl_rule_set_sport | ( | struct rtnl_rule * | rule, |
uint16_t | sport | ||
) |
int rtnl_rule_set_sport_range | ( | struct rtnl_rule * | rule, |
uint16_t | start, | ||
uint16_t | end | ||
) |
int rtnl_rule_get_sport | ( | struct rtnl_rule * | rule, |
uint16_t * | start, | ||
uint16_t * | end | ||
) |
int rtnl_rule_set_dport | ( | struct rtnl_rule * | rule, |
uint16_t | dport | ||
) |
int rtnl_rule_set_dport_range | ( | struct rtnl_rule * | rule, |
uint16_t | start, | ||
uint16_t | end | ||
) |
int rtnl_rule_get_dport | ( | struct rtnl_rule * | rule, |
uint16_t * | start, | ||
uint16_t * | end | ||
) |
void rtnl_rule_set_realms | ( | struct rtnl_rule * | rule, |
uint32_t | realms | ||
) |
void rtnl_rule_set_goto | ( | struct rtnl_rule * | rule, |
uint32_t | ref | ||
) |