original files of m241

This commit is contained in:
neelimap
2026-07-30 11:19:44 +05:30
parent 170c2b3f3a
commit afc7070c1f
12254 changed files with 7655111 additions and 0 deletions
@@ -0,0 +1,106 @@
/*
******************************************************************************
* HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6mn.h,v $ $Revision: 1.13 $
* $Source: /home/interpeak/CVSRoot/ipmip6mn/include/ipmip6mn.h,v $
* $Author: jhorteli $ $Date: 2009-02-26 13:40:54 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
* Design and implementation by Joel Hortelius <joel.hortelius@interpeak.se>
******************************************************************************
*/
#ifndef IPMIP6MN_H
#define IPMIP6MN_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
#define IPMIP6MN_RELEASE 60701
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
/*
*===========================================================================
* ipmip6_create
*===========================================================================
* Description:
* Parameters:
* Returns:
*
*/
IP_PUBLIC Ip_err ipmip6mn_create(void);
/*
*===========================================================================
* ipmip6_start
*===========================================================================
* Description:
* Parameters:
* Returns:
*
*/
IP_PUBLIC Ip_err ipmip6mn_start(void);
/*
*===========================================================================
* ipmip6_version
*===========================================================================
* Description:
* Parameters:
* Returns:
*
*/
IP_PUBLIC const char *ipmip6mn_version(void);
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/
@@ -0,0 +1,154 @@
/* ipmipfa_attr.h - ipmipfa_attr.h */
/*
******************************************************************************
* HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6mn_attr.h,v $ $Revision: 1.10 $
* $Source: /home/interpeak/CVSRoot/ipmip6mn/include/ipmip6mn_attr.h,v $
* $Author: jhorteli $ $Date: 2009-02-25 14:34:10 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
* Design and implementation by Joel Hortelius <joel.hortelius@interpeak.se>
******************************************************************************
*/
#ifndef IPMIP6MN_ATTR_H
#define IPMIP6MN_ATTR_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/*
DESCRIPTION
No description currently provided
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include <ipmip6_mib.h>
#include <private/ipmip6_attr.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
enum
{
/* Replies with a list of IPMIP6MN_CLI_NETWORK_ATTR_NAME */
IPMIP6MN_CLI_NETWORK_LIST = IPMIP6_CLI_BASE,
/* Returns with a subset or all of the NETWORK attributes */
IPMIP6MN_CLI_NETWORK_GET,
IPMIP6MN_CLI_NETWORK_IF_ADD,
IPMIP6MN_CLI_NETWORK_IF_DEL,
IPMIP6MN_CLI_MAX
};
enum
{
IPMIP6MN_CLI_NETWORK_ATTR_NONE,
IPMIP6MN_CLI_NETWORK_ATTR_NAME,
IPMIP6MN_CLI_NETWORK_ATTR_CN,
IPMIP6MN_CLI_NETWORK_ATTR_HA,
IPMIP6MN_CLI_NETWORK_ATTR_INTERFACES,
IPMIP6MN_CLI_NETWORK_ATTR_TUNNEL_IFNAME,
IPMIP6MN_CLI_NETWORK_ATTR_MIB_mip6MnHomeAddressEntry,
IPMIP6MN_CLI_NETWORK_ATTR_MIB_mip6MnConf,
IPMIP6MN_CLI_NETWORK_ATTR_MIB_mip6MnRegnCounters,
IPMIP6MN_CLI_NETWORK_ATTR_MIB_mip6TotalTraffic,
IPMIP6MN_CLI_NETWORK_ATTR_MIB_mip6NodeTrafficEntry,
IPMIP6MN_CLI_NETWORK_ATTR_DSMIPV6,
IPMIP6MN_CLI_NETWORK_ATTR_MAX
};
enum
{
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_NONE,
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_ITEM,
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_MAX
};
enum
{
IPMIP6MN_CLI_NETWORK_ATTR_INTERFACES_NONE,
IPMIP6MN_CLI_NETWORK_ATTR_INTERFACES_NAME,
IPMIP6MN_CLI_NETWORK_ATTR_INTERFACES_MAX
};
enum
{
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_ITEM_NONE,
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_ITEM_MIB_mip6MnBLTable,
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_ITEM_ENCAP,
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_ITEM_IFNAME,
IPMIP6MN_CLI_NETWORK_ATTR_BINDING_ITEM_MAX
};
enum
{
IPMIP6MN_CLI_NETWORK_ATTR_DSMIPV6_NONE,
IPMIP6MN_CLI_NETWORK_ATTR_DSMIPV6_PREFIX,
IPMIP6MN_CLI_NETWORK_ATTR_DSMIPV6_MAX
};
enum
{
IPMIP6MN_CLI_NETWORK_ATTR_ENCAP_IP6IP6,
IPMIP6MN_CLI_NETWORK_ATTR_ENCAP_IPIP,
IPMIP6MN_CLI_NETWORK_ATTR_ENCAP_IPIP_UDP,
IPMIP6MN_CLI_NETWORK_ATTR_ENCAP_IPIP_TLV,
IPMIP6MN_CLI_NETWORK_ATTR_ENCAP_IP6IP6_UDP,
IPMIP6MN_CLI_NETWORK_ATTR_ENCAP_MAX
};
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
typedef struct Ipmip6mn_attr_dsmipv6
{
Ip_u32 dsmipv6_prefix;
Ip_u8 dsmipv6_prefix_length;
Ip_u8 dsmipv6_status;
Ip_u8 dsmipv6_acknowledged;
Ip_u8 __reserved;
} Ipmip6mn_attr_dsmipv6_t;
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
extern const char *ipmip6mn_attr_encap_names[];
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/
@@ -0,0 +1,783 @@
/*
******************************************************************************
* HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6mn_cli.h,v $ $Revision: 1.5 $
* $Source: /home/interpeak/CVSRoot/ipmip6mn/include/ipmip6mn_cli.h,v $
* $Author: jhorteli $ $Date: 2009-03-31 15:00:25 $
* $State: Exp $ $Locker: $
*
* INTERPEAK_COPYRIGHT_STRING
* Design and implementation by Joel Hortelius <joel.hortelius@interpeak.se>
******************************************************************************
*/
#ifndef IPMIP6MN_CLI_H
#define IPMIP6MN_CLI_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include <private/ipmip6_cli.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
struct Ipmip6_mib_mip6MnBLTable;
struct Ipmip6_mib_mip6NodeTrafficEntry;
struct Ipmip_attr;
struct Ipmip_lladdr;
struct Ipmip6_address;
struct Ip_in6_addr;
struct Ipmip6mn_attr_dsmipv6;
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
/*******************************************************************************
*
* ipmip6mn_cli_connect - ipmip6mn_cli_connect
*
* Connect to the mobile node v6 daemon.
*
* Parameters:
* \is
* \i daemon_info
* Will be filled in by the function
* \ie
*
* RETURNS: IP_TRUE on success
*
* ERRNO:
*
*/
IP_PUBLIC Ip_bool ipmip6mn_cli_connect
(
Ipmip_cli_daemon_t *daemon_info
);
/*******************************************************************************
*
* ipmip6mn_cli_network_set_name - ipmip6mn_cli_network_set_name
*
* Set a NAME identifier that identifies the network we're looking for
*
* Parameters:
* \is
* \i req
* Daemon request structure
* \i name
* NAME identifier
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
*/
IP_PUBLIC void ipmip6mn_cli_network_set_name
(
Ipmip_cli_daemon_req_t *req,
const char *name
);
/*******************************************************************************
*
* ipmip6mn_cli_network_list - ipmip6mn_cli_network_list
*
* List all networks matching the specified search criteries
*
* Parameters:
* \is
* \i daemon
* Connection to the IPMIP6MN daemon
* \i req
* Request to use.
* \i name
* If specified will only verify that this particular network exists. If not
* specified (IP_NULL) will result in dumping all available networks.
* \ie
*
* RETURNS: IPCOM_SUCCESS if the request was successful
*
* ERRNO:
*
*/
IP_PUBLIC int ipmip6mn_cli_network_list
(
Ipmip_cli_daemon_t *daemon,
Ipmip_cli_daemon_req_t *req,
const char *name
);
/*******************************************************************************
*
* ipmip6mn_cli_network_next - ipmip6mn_cli_network_next
*
* Return the next network
*
* Parameters:
* \is
* \i iter
* Iterator
* \ie
*
* RETURNS: The next network name or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const char * ipmip6mn_cli_network_next
(
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get - ipmip6mn_cli_network_get
*
* Retrieve information on a specific network
*
* Parameters:
* \is
* \i daemon
* Connection to the IPMIP6MN daemon
* \i req
* Request to use.
* \i name
* Network Name to look for.
* \ie
*
* RETURNS: IPCOM_SUCCESS on success, < 0 otherwise
*
* ERRNO:
*
*/
IP_PUBLIC int ipmip6mn_cli_network_get
(
Ipmip_cli_daemon_t *daemon,
Ipmip_cli_daemon_req_t *req,
const char *name
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_mip6MnHomeAddressEntry - ipmip6mn_cli_network_get_mip6MnHomeAddressEntry
*
* Return the mip6MnHomeAddressEntry of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The mip6MnHomeAddressEntry or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6_mib_mip6MnHomeAddressEntry *ipmip6mn_cli_network_get_mip6MnHomeAddressEntry
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_mip6MnConf - ipmip6mn_cli_network_get_mip6MnConf
*
* Return the mip6MnConf of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The mip6MnConf or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6_mib_mip6MnConf *ipmip6mn_cli_network_get_mip6MnConf
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_mip6MnRegnCounters - ipmip6mn_cli_network_get_mip6MnRegnCounters
*
* Return the mip6MnRegnCounters of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The mip6MnRegnCounters or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6_mib_mip6MnRegnCounters *ipmip6mn_cli_network_get_mip6MnRegnCounters
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_mip6TotalTraffic - ipmip6mn_cli_network_get_mip6TotalTraffic
*
* Return the mip6TotalTraffic of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The mip6TotalTraffic or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6_mib_mip6TotalTraffic *ipmip6mn_cli_network_get_mip6TotalTraffic
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_mip6NodeTrafficEntry - ipmip6mn_cli_network_get_mip6NodeTrafficEntry
*
* Return the mip6NodeTrafficEntry of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The mip6NodeTrafficEntry or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6_mib_mip6NodeTrafficEntry *ipmip6mn_cli_network_get_mip6NodeTrafficEntry
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_name - ipmip6mn_cli_network_get_name
*
* Return the NAME of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The NAME or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const char *ipmip6mn_cli_network_get_name
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_tunnel_ifname - ipmip6mn_cli_network_get_tunnel_ifname
*
* Return the TUNNEL ifname of the network
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The TUNNEL ifname or IP_NULL
*
* ERRNO:
*
*/
IP_PUBLIC const char *ipmip6mn_cli_network_get_tunnel_ifname
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_ifnames - ipmip6mn_cli_network_get_ifnames
*
* Return the RTA containing the ifnames currently being used
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The IFNAMES RTA
*
* ERRNO:
*
*/
IP_PUBLIC struct Ipmip_attr *ipmip6mn_cli_network_get_ifnames
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_ifnames_iter - ipmip6mn_cli_network_get_ifnames_iter
*
* Initializes the iterator with ifnames block; to be used in
* ipmip6mn_cli_network_get_ifnames_next
*
* Parameters:
* \is
* \i req
* The request
* \i iter
* The iterator
* \ie
*
* RETURNS: IP_TRUE on success.
*
* ERRNO:
*
*/
IP_PUBLIC Ip_bool ipmip6mn_cli_network_get_ifnames_iter
(
Ipmip_cli_daemon_req_t *req,
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_ifnames_next - ipmip6mn_cli_network_get_ifnames_next
*
* Return the next interface name in the iterator
*
* Parameters:
* \is
* \i iter
* The iterator
* \ie
*
* RETURNS: The next interface name
*
* ERRNO:
*
*/
IP_PUBLIC const char *ipmip6mn_cli_network_get_ifnames_next
(
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_cn_bindings - ipmip6mn_cli_network_get_cn_bindings
*
* Return the CN bindings
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The CN bindings RTA
*
* ERRNO:
*
*/
IP_PUBLIC struct Ipmip_attr *ipmip6mn_cli_network_get_cn_bindings
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_ha_bindings - ipmip6mn_cli_network_get_ha_bindings
*
* Return the HA bindings
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The HA bindings RTA
*
* ERRNO:
*
*/
IP_PUBLIC struct Ipmip_attr *ipmip6mn_cli_network_get_ha_bindings
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_cn_bindings_iter - ipmip6mn_cli_network_get_cn_bindings_iter
*
* Initializes the iterator with a CN bindings block; to be used in
* ipmip6mn_cli_network_get_bindings_next
*
* Parameters:
* \is
* \i req
* The request
* \i iter
* The iterator
* \ie
*
* RETURNS: IP_TRUE on success.
*
* ERRNO:
*
*/
IP_PUBLIC Ip_bool ipmip6mn_cli_network_get_cn_bindings_iter
(
Ipmip_cli_daemon_req_t *req,
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_ha_bindings_iter - ipmip6mn_cli_network_get_ha_bindings_iter
*
* Initializes the iterator with a HA bindings block; to be used in
* ipmip6mn_cli_network_get_bindings_next
*
* Parameters:
* \is
* \i req
* The request
* \i iter
* The iterator
* \ie
*
* RETURNS: IP_TRUE on success.
*
* ERRNO:
*
*/
IP_PUBLIC Ip_bool ipmip6mn_cli_network_get_ha_bindings_iter
(
Ipmip_cli_daemon_req_t *req,
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_bindings_next - ipmip6mn_cli_network_get_bindings_next
*
* Return the next mip6MnBLTable in the iterator
*
* Parameters:
* \is
* \i iter
* The iterator
* \ie
*
* RETURNS: The next mip6MnBLTable
*
* ERRNO:
*
*/
IP_PUBLIC struct Ipmip_attr *ipmip6mn_cli_network_get_bindings_next
(
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_bindings_mip6MnBLTable - ipmip6mn_cli_network_get_bindings_mip6MnBLTable
*
* Return the mip6MnBLTable of the binding
*
* Parameters:
* \is
* \i rta
* The binding
* \ie
*
* RETURNS: The mip6MnBLTable
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6_mib_mip6MnBLTable *ipmip6mn_cli_network_get_bindings_mip6MnBLTable
(
struct Ipmip_attr *rta
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_bindings_encap - ipmip6mn_cli_network_get_bindings_encap
*
* Return the ENCAP type of the binding
*
* Parameters:
* \is
* \i rta
* The binding
* \ie
*
* RETURNS: The ENCAP type.
*
* ERRNO:
*
*/
IP_PUBLIC Ip_u32 ipmip6mn_cli_network_get_bindings_encap
(
struct Ipmip_attr *rta
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_bindings_ifname - ipmip6mn_cli_network_get_bindings_ifname
*
* Return the interface used by this binding
*
* Parameters:
* \is
* \i rta
* The binding
* \ie
*
* RETURNS: The interface used by this binding
*
* ERRNO:
*
*/
IP_PUBLIC const char * ipmip6mn_cli_network_get_bindings_ifname
(
struct Ipmip_attr *rta
);
#ifdef IPMIP_USE_INET
/*******************************************************************************
*
* ipmip6mn_cli_network_get_dsmipv6 - ipmip6mn_cli_network_get_dsmipv6
*
* Return the RTA containing the DSMIPV6 currently being used
*
* Parameters:
* \is
* \i req
* The request
* \ie
*
* RETURNS: The DSMIPV6 RTA
*
* ERRNO:
*
*/
IP_PUBLIC struct Ipmip_attr *ipmip6mn_cli_network_get_dsmipv6
(
Ipmip_cli_daemon_req_t *req
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_dsmipv6_iter - ipmip6mn_cli_network_get_dsmipv6_iter
*
* Initializes the iterator with DSMIPV6 block; to be used in
* ipmip6mn_cli_network_get_dsmipv6_next
*
* Parameters:
* \is
* \i req
* The request
* \i iter
* The iterator
* \ie
*
* RETURNS: IP_TRUE on success.
*
* ERRNO:
*
*/
IP_PUBLIC Ip_bool ipmip6mn_cli_network_get_dsmipv6_iter
(
Ipmip_cli_daemon_req_t *req,
Ipmip_attr_iter_t *iter
);
/*******************************************************************************
*
* ipmip6mn_cli_network_get_dsmipv6_next - ipmip6mn_cli_network_get_dsmipv6_next
*
* Return the next DSMIPV6 in the iterator
*
* Parameters:
* \is
* \i iter
* The iterator
* \ie
*
* RETURNS: The next DSMIPv6 instance
*
* ERRNO:
*
*/
IP_PUBLIC const struct Ipmip6mn_attr_dsmipv6 *ipmip6mn_cli_network_get_dsmipv6_next
(
Ipmip_attr_iter_t *iter
);
#endif
/*******************************************************************************
*
* ipmip6mn_cli_network_addif_init - ipmip6mn_cli_network_addif_init
*
* Create the embryo to a addif request
*
* Parameters:
* \is
* \i req
* Request to use.
* \i network
* NETWORK to update. MUST be specified or this function will fail.
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
*/
IP_PUBLIC void ipmip6mn_cli_network_addif_init
(
Ipmip_cli_daemon_req_t *req,
const char *network
);
/*******************************************************************************
*
* ipmip6mn_cli_network_delif_init - ipmip6mn_cli_network_delif_init
*
* Create the embryo to a delif request
*
* Parameters:
* \is
* \i req
* Request to use.
* \i network
* NETWORK to update. MUST be specified or this function will fail.
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
*/
IP_PUBLIC void ipmip6mn_cli_network_delif_init
(
Ipmip_cli_daemon_req_t *req,
const char *network
);
/*******************************************************************************
*
* ipmip6mn_cli_network_add_ifname - ipmip6mn_cli_network_add_ifname
*
* Add an interface name to a request
*
* Parameters:
* \is
* \i req
* Request to use.
* \i ifname
* Interface name
* \ie
*
* RETURNS: No return value
*
* ERRNO:
*
*/
IP_PUBLIC void ipmip6mn_cli_network_add_ifname
(
Ipmip_cli_daemon_req_t *req,
const char *ifname
);
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/