Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ ">

nd_protocol

Name

nd_protocol -- 

Synopsis



#define     ND_PROTO_MAGICS
enum        ND_ProtocolLayer;
void        (*ND_ProtoFieldCB)              (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
enum        ND_ProtoFieldType;
enum        ND_ProtoFieldState;
ND_Protocol* nd_proto_new                   (const char *name,
                                             ND_ProtocolLayer layer,
                                             guint64 magic);
void        nd_proto_free                   (ND_Protocol *proto);
void        nd_proto_field_set              (const ND_ProtoInfo *pinf,
                                             ND_ProtoField *field,
                                             void *data);
void        nd_proto_field_set_for_menu     (const ND_ProtoInfo *pinf,
                                             ND_ProtoField *field,
                                             void *data,
                                             ND_MenuData *menu,
                                             char *alt_form_str);
const char* nd_proto_field_to_string        (const ND_ProtoField *field);
char*       nd_proto_get_opt_key            (ND_Protocol *proto);
void        nd_proto_4bit_hi_cb             (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
void        nd_proto_4bit_lo_cb             (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
void        nd_proto_8bit_cb                (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
void        nd_proto_16bit_cb               (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
void        nd_proto_24bit_cb               (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
void        nd_proto_32bit_cb               (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);
void        nd_proto_cb_data_init           (ND_ProtoCallbackData *cb_data,
                                             ND_Protocol *proto,
                                             guchar *data,
                                             guint offset,
                                             gboolean update_packet);
void        nd_proto_iterate_4bit_hi_cb     (ND_Packet *packet,
                                             void *user_data,
                                             guint value);
void        nd_proto_iterate_4bit_lo_cb     (ND_Packet *packet,
                                             void *user_data,
                                             guint value);
void        nd_proto_iterate_8bit_cb        (ND_Packet *packet,
                                             void *user_data,
                                             guint value);
void        nd_proto_iterate_16bit_cb       (ND_Packet *packet,
                                             void *user_data,
                                             guint value);
void        nd_proto_iterate_32bit_cb       (ND_Packet *packet,
                                             void *user_data,
                                             guint value);
#define     DATA_TO_PTR                     (data)

Description

Details

ND_PROTO_MAGICS

#define ND_PROTO_MAGICS 3


enum ND_ProtocolLayer

typedef enum {
  ND_PROTO_LAYER_LINK  = (1 << 0),
  ND_PROTO_LAYER_NET   = (1 << 1),
  ND_PROTO_LAYER_TRANS = (1 << 2),
  ND_PROTO_LAYER_APP   = (1 << 3)
} ND_ProtocolLayer;


ND_ProtoFieldCB ()

void        (*ND_ProtoFieldCB)              (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


enum ND_ProtoFieldType

typedef enum
{
  ND_VAL_FIELD,
  ND_FLG_FIELD

} ND_ProtoFieldType;


enum ND_ProtoFieldState

typedef enum
{
  ND_FIELD_STATE_NORMAL,
  ND_FIELD_STATE_UNKN,
  ND_FIELD_STATE_ERROR

} ND_ProtoFieldState;


nd_proto_new ()

ND_Protocol* nd_proto_new                   (const char *name,
                                             ND_ProtocolLayer layer,
                                             guint64 magic);


nd_proto_free ()

void        nd_proto_free                   (ND_Protocol *proto);


nd_proto_field_set ()

void        nd_proto_field_set              (const ND_ProtoInfo *pinf,
                                             ND_ProtoField *field,
                                             void *data);


nd_proto_field_set_for_menu ()

void        nd_proto_field_set_for_menu     (const ND_ProtoInfo *pinf,
                                             ND_ProtoField *field,
                                             void *data,
                                             ND_MenuData *menu,
                                             char *alt_form_str);


nd_proto_field_to_string ()

const char* nd_proto_field_to_string        (const ND_ProtoField *field);


nd_proto_get_opt_key ()

char*       nd_proto_get_opt_key            (ND_Protocol *proto);


nd_proto_4bit_hi_cb ()

void        nd_proto_4bit_hi_cb             (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


nd_proto_4bit_lo_cb ()

void        nd_proto_4bit_lo_cb             (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


nd_proto_8bit_cb ()

void        nd_proto_8bit_cb                (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


nd_proto_16bit_cb ()

void        nd_proto_16bit_cb               (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


nd_proto_24bit_cb ()

void        nd_proto_24bit_cb               (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


nd_proto_32bit_cb ()

void        nd_proto_32bit_cb               (ND_Packet *packet,
                                             guchar *header,
                                             guchar *data);


nd_proto_cb_data_init ()

void        nd_proto_cb_data_init           (ND_ProtoCallbackData *cb_data,
                                             ND_Protocol *proto,
                                             guchar *data,
                                             guint offset,
                                             gboolean update_packet);

This function initializes the helper data structure that gets passed to the iterating callbacks (nd_proto_iterate_7bit_cb() and friends).


nd_proto_iterate_4bit_hi_cb ()

void        nd_proto_iterate_4bit_hi_cb     (ND_Packet *packet,
                                             void *user_data,
                                             guint value);


nd_proto_iterate_4bit_lo_cb ()

void        nd_proto_iterate_4bit_lo_cb     (ND_Packet *packet,
                                             void *user_data,
                                             guint value);


nd_proto_iterate_8bit_cb ()

void        nd_proto_iterate_8bit_cb        (ND_Packet *packet,
                                             void *user_data,
                                             guint value);


nd_proto_iterate_16bit_cb ()

void        nd_proto_iterate_16bit_cb       (ND_Packet *packet,
                                             void *user_data,
                                             guint value);


nd_proto_iterate_32bit_cb ()

void        nd_proto_iterate_32bit_cb       (ND_Packet *packet,
                                             void *user_data,
                                             guint value);


DATA_TO_PTR()

#define DATA_TO_PTR(data) (GINT_TO_POINTER((gint) (data)))