libnd_protocol

Name

libnd_protocol -- 

Synopsis



#define     LND_PROTO_MAGICS
enum        LND_ProtocolLayer;
LND_Protocol* libnd_proto_new               (const char *name,
                                             LND_ProtocolLayer layer,
                                             guint32 magic);
void        libnd_proto_free                (LND_Protocol *proto);
gboolean    libnd_proto_is_raw              (LND_Protocol *proto);
const char* libnd_proto_layer_to_string     (LND_ProtocolLayer layer);

Description

Details

LND_PROTO_MAGICS

#define LND_PROTO_MAGICS 3


enum LND_ProtocolLayer

typedef enum {
  LND_PROTO_LAYER_LINK  = (1 << 0),
  LND_PROTO_LAYER_NET   = (1 << 1),
  LND_PROTO_LAYER_TRANS = (1 << 2),
  LND_PROTO_LAYER_APP   = (1 << 3),
} LND_ProtocolLayer;


libnd_proto_new ()

LND_Protocol* libnd_proto_new               (const char *name,
                                             LND_ProtocolLayer layer,
                                             guint32 magic);

The function creates a new protocol with dummy operations hooked into the function pointers. Commonly used magic values are the DLT_xxx constants from bpf.h for the linklevel, ETHERTYPE_xxx for the network layer, IPPROTO_xxx for the transport layer, and ports as given in /etc/services for the application layer.

name :

name of the protocol.

layer :

layer in the network stack that the new protocol lives at.

magic :

the magic value by which the protocol is commonly identified by the layer below.

Returns :

new protocol, or NULL on error.


libnd_proto_free ()

void        libnd_proto_free                (LND_Protocol *proto);

The function releases all memory associated with a protocol.

proto :

protocol to free.


libnd_proto_is_raw ()

gboolean    libnd_proto_is_raw              (LND_Protocol *proto);

Use this function to determine whether a protocol is the built-in raw data protocol.

proto :

protocol to test.

Returns :

TRUE if proto is the raw protocol, FALSE otherwise.


libnd_proto_layer_to_string ()

const char* libnd_proto_layer_to_string     (LND_ProtocolLayer layer);

Mainly for debugging purposes, this function returns a statically allocated string for the protocol layer identifier given in layer.

layer :

layer identifier.

Returns :