libnl 1.1.4

Lookup Request Creation/Deletion

struct flnl_request * flnl_request_alloc (void)
 

Attributes

void flnl_request_set_fwmark (struct flnl_request *req, uint64_t fwmark)
 
uint64_t flnl_request_get_fwmark (struct flnl_request *req)
 
void flnl_request_set_tos (struct flnl_request *req, int tos)
 
int flnl_request_get_tos (struct flnl_request *req)
 
void flnl_request_set_scope (struct flnl_request *req, int scope)
 
int flnl_request_get_scope (struct flnl_request *req)
 
void flnl_request_set_table (struct flnl_request *req, int table)
 
int flnl_request_get_table (struct flnl_request *req)
 
int flnl_request_set_addr (struct flnl_request *req, struct nl_addr *addr)
 
struct nl_addr * flnl_request_get_addr (struct flnl_request *req)
 

Detailed Description

Function Documentation

◆ flnl_request_alloc()

struct flnl_request * flnl_request_alloc ( void  )

Definition at line 84 of file request.c.

85{
86 return REQUEST_CAST(nl_object_alloc(&request_obj_ops));
87}
struct nl_object * nl_object_alloc(struct nl_object_ops *ops)
Allocate a new object of kind specified by the operations handle.
Definition: object.c:42

◆ flnl_request_set_fwmark()

void flnl_request_set_fwmark ( struct flnl_request *  req,
uint64_t  fwmark 
)

Definition at line 96 of file request.c.

97{
98 req->lr_fwmark = fwmark;
99 req->ce_mask |= REQUEST_ATTR_FWMARK;
100}

◆ flnl_request_get_fwmark()

uint64_t flnl_request_get_fwmark ( struct flnl_request *  req)

Definition at line 102 of file request.c.

103{
104 if (req->ce_mask & REQUEST_ATTR_FWMARK)
105 return req->lr_fwmark;
106 else
107 return UINT_LEAST64_MAX;
108}

◆ flnl_request_set_tos()

void flnl_request_set_tos ( struct flnl_request *  req,
int  tos 
)

Definition at line 110 of file request.c.

111{
112 req->lr_tos = tos;
113 req->ce_mask |= REQUEST_ATTR_TOS;
114}

◆ flnl_request_get_tos()

int flnl_request_get_tos ( struct flnl_request *  req)

Definition at line 116 of file request.c.

117{
118 if (req->ce_mask & REQUEST_ATTR_TOS)
119 return req->lr_tos;
120 else
121 return -1;
122}

◆ flnl_request_set_scope()

void flnl_request_set_scope ( struct flnl_request *  req,
int  scope 
)

Definition at line 124 of file request.c.

125{
126 req->lr_scope = scope;
127 req->ce_mask |= REQUEST_ATTR_SCOPE;
128}

◆ flnl_request_get_scope()

int flnl_request_get_scope ( struct flnl_request *  req)

Definition at line 130 of file request.c.

131{
132 if (req->ce_mask & REQUEST_ATTR_SCOPE)
133 return req->lr_scope;
134 else
135 return -1;
136}

◆ flnl_request_set_table()

void flnl_request_set_table ( struct flnl_request *  req,
int  table 
)

Definition at line 138 of file request.c.

139{
140 req->lr_table = table;
141 req->ce_mask |= REQUEST_ATTR_TABLE;
142}

◆ flnl_request_get_table()

int flnl_request_get_table ( struct flnl_request *  req)

Definition at line 144 of file request.c.

145{
146 if (req->ce_mask & REQUEST_ATTR_TABLE)
147 return req->lr_table;
148 else
149 return -1;
150}

◆ flnl_request_set_addr()

int flnl_request_set_addr ( struct flnl_request *  req,
struct nl_addr *  addr 
)

Definition at line 152 of file request.c.

153{
154 if (addr->a_family != AF_INET)
155 return nl_error(EINVAL, "Address must be an IPv4 address");
156
157 if (req->lr_addr)
158 nl_addr_put(req->lr_addr);
159
160 nl_addr_get(addr);
161 req->lr_addr = addr;
162
163 req->ce_mask |= REQUEST_ATTR_ADDR;
164
165 return 0;
166}

◆ flnl_request_get_addr()

struct nl_addr * flnl_request_get_addr ( struct flnl_request *  req)

Definition at line 168 of file request.c.

169{
170 if (req->ce_mask & REQUEST_ATTR_ADDR)
171 return req->lr_addr;
172 else
173 return NULL;
174}