libnl  3.2.24-rc1
Packet Location Aliasing

Packet Location Aliasing. More...


int rtnl_pktloc_lookup (const char *name, struct rtnl_pktloc **result)
 Lookup packet location alias. More...
struct rtnl_pktlocrtnl_pktloc_alloc (void)
 Allocate packet location object.
void rtnl_pktloc_put (struct rtnl_pktloc *loc)
 Return reference of a packet location. More...
int rtnl_pktloc_add (struct rtnl_pktloc *loc)
 Add a packet location to the hash table. More...
void rtnl_pktloc_foreach (void(*cb)(struct rtnl_pktloc *, void *), void *arg)

Detailed Description

Packet Location Aliasing.

The packet location aliasing interface eases the use of offset definitions inside packets by allowing them to be referenced by name. Known positions of protocol fields are stored in a configuration file and associated with a name for later reference. The configuration file is distributed with the library and provides a well defined set of definitions for most common protocol fields.


Example 1.1 Looking up a packet location
struct rtnl_pktloc *loc;
rtnl_pktloc_lookup("ip.src", &loc);

Function Documentation

int rtnl_pktloc_lookup ( const char *  name,
struct rtnl_pktloc **  result 

Lookup packet location alias.

nameName of packet location.
resultResult pointer

Tries to find a matching packet location alias for the supplied packet location name.

The file containing the packet location definitions is automatically re-read if its modification time has changed since the last call.

The returned packet location has to be returned after use by calling rtnl_pktloc_put() in order to allow freeing its memory after the last user has abandoned it.

0 on success or a negative error code.
Return values
NLE_PKTLOC_FILEUnable to open packet location file.
NLE_OBJ_NOTFOUNDNo matching packet location alias found.

Definition at line 172 of file pktloc.c.

void rtnl_pktloc_put ( struct rtnl_pktloc loc)

Return reference of a packet location.

locpacket location object.

Definition at line 202 of file pktloc.c.

Referenced by rtnl_pktloc_add().

+ Here is the caller graph for this function:

int rtnl_pktloc_add ( struct rtnl_pktloc loc)

Add a packet location to the hash table.

locpacket location object
0 on success or a negative error code.

Definition at line 218 of file pktloc.c.

References rtnl_pktloc_put().

+ Here is the call graph for this function: