/* * Function to register ourselves. This function is always called, regardless * of what DLT types are being used, so it shouldn't be allocating extra buffers * or anything like that (use the dlt_loop_init() function below for that). * Tasks: * - Create a new plugin struct * - Fill out the provides/requires bit masks. Note: Only specify which fields are * actually in the header. * - Add the plugin to the context's plugin chain * Returns: TCPEDIT_ERROR | TCPEDIT_OK | TCPEDIT_WARN */ int dlt_loop_register(tcpeditdlt_t *ctx) { tcpeditdlt_plugin_t *plugin; assert(ctx); /* create a new plugin structure */ plugin = tcpedit_dlt_newplugin(); /* set what we provide & require */ plugin->provides += PLUGIN_MASK_PROTO; plugin->requires += 0; /* what is our DLT value? */ plugin->dlt = dlt_value; /* set the prefix name of our plugin. This is also used as the prefix for our options */ plugin->name = safe_strdup(dlt_prefix); /* we actually call all the DLT_NULL functions since NULL and LOOP are basically the same thing */ plugin->plugin_init = dlt_loop_init; plugin->plugin_cleanup = dlt_null_cleanup; plugin->plugin_parse_opts = dlt_null_parse_opts; plugin->plugin_decode = dlt_null_decode; plugin->plugin_encode = dlt_null_encode; plugin->plugin_proto = dlt_null_proto; plugin->plugin_l2addr_type = dlt_null_l2addr_type; plugin->plugin_l2len = dlt_null_l2len; plugin->plugin_get_layer3 = dlt_null_get_layer3; plugin->plugin_merge_layer3 = dlt_null_merge_layer3; plugin->plugin_get_mac = dlt_null_get_mac; /* add it to the available plugin list */ return tcpedit_dlt_addplugin(ctx, plugin); }
/* * Function to register ourselves. This function is always called, regardless * of what DLT types are being used, so it shouldn't be allocating extra buffers * or anything like that (use the dlt_linuxsll_init() function below for that). * Tasks: * - Create a new plugin struct * - Fill out the provides/requires bit masks. Note: Only specify which fields are * actually in the header. * - Add the plugin to the context's plugin chain * Returns: TCPEDIT_ERROR | TCPEDIT_OK | TCPEDIT_WARN */ int dlt_linuxsll_register(tcpeditdlt_t *ctx) { tcpeditdlt_plugin_t *plugin; assert(ctx); /* create a new plugin structure */ plugin = tcpedit_dlt_newplugin(); /* FIXME: set what we provide & require */ plugin->provides += PLUGIN_MASK_PROTO + PLUGIN_MASK_SRCADDR; plugin->requires += 0; /* what is our DLT value? */ plugin->dlt = dlt_value; /* set the prefix name of our plugin. This is also used as the prefix for our options */ plugin->name = safe_strdup(dlt_prefix); /* * Point to our functions, note, you need a function for EVERY method. * Even if it is only an empty stub returning success. */ plugin->plugin_init = dlt_linuxsll_init; plugin->plugin_cleanup = dlt_linuxsll_cleanup; plugin->plugin_parse_opts = dlt_linuxsll_parse_opts; plugin->plugin_decode = dlt_linuxsll_decode; plugin->plugin_encode = dlt_linuxsll_encode; plugin->plugin_proto = dlt_linuxsll_proto; plugin->plugin_l2addr_type = dlt_linuxsll_l2addr_type; plugin->plugin_l2len = dlt_linuxsll_l2len; plugin->plugin_get_layer3 = dlt_linuxsll_get_layer3; plugin->plugin_merge_layer3 = dlt_linuxsll_merge_layer3; plugin->plugin_get_mac = dlt_linuxsll_get_mac; /* add it to the available plugin list */ return tcpedit_dlt_addplugin(ctx, plugin); }