本文整理汇总了C++中NETIF_INIT_SNMP函数的典型用法代码示例。如果您正苦于以下问题:C++ NETIF_INIT_SNMP函数的具体用法?C++ NETIF_INIT_SNMP怎么用?C++ NETIF_INIT_SNMP使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NETIF_INIT_SNMP函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ethernetif_init
err_t ethernetif_init(struct netif *netif)
{
LWIP_ASSERT("netif != NULL", (netif != NULL));
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "lwip";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
// don't touch netif->state here, the field is used internally in the ESP SDK layers
netif->name[0] = 'e';
netif->name[1] = 'n';
netif->output = etharp_output;
netif->linkoutput = low_level_output;
/* low_level_init components */
netif->hwaddr_len = 6;
/* hwaddr seems to be set elsewhere, or (more likely) is set on tx by MAC layer */
netif->mtu = 1500;
netif->flags = NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
return ERR_OK;
}
开发者ID:BorgesJVT,项目名称:esp-open-rtos,代码行数:30,代码来源:esp_interface.c
示例2: ethernetif_init
/*-----------------------------------------------------------------------------------*/
err_t
ethernetif_init(struct netif *netif)
{
static int ethernetif_index;
int local_index;
SYS_ARCH_DECL_PROTECT(lev);
SYS_ARCH_PROTECT(lev);
local_index = ethernetif_index++;
SYS_ARCH_UNPROTECT(lev);
netif->name[0] = IFNAME0;
netif->name[1] = (char)(IFNAME1 + local_index);
netif->linkoutput = low_level_output;
#if LWIP_ARP
netif->output = etharp_output;
#else /* LWIP_ARP */
netif->output = NULL; /* not used for PPPoE */
#endif /* LWIP_ARP */
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif_set_hostname(netif, "lwip");
#endif /* LWIP_NETIF_HOSTNAME */
netif->mtu = 1500;
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP;
netif->hwaddr_len = ETHARP_HWADDR_LEN;
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 100000000);
/* sets link up or down based on current status */
low_level_init(netif);
return ERR_OK;
}
开发者ID:10code,项目名称:lwip,代码行数:36,代码来源:pktif.c
示例3: eth_init
err_t eth_init(struct netif *netif) {
LWIP_ASSERT("netif != NULL", (netif != NULL));
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 0x2EA);
/* maximum transfer unit */
netif->mtu = 0x2EA;
/* device capabilities */
/* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP;
netif->state = NULL;
eth_netif = netif;
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->linkoutput = eth_output;
if (!pEth) pEth = new Ethernet(); // only create Ethernet object if required
return ERR_OK;
}
开发者ID:joao-duarte,项目名称:Automatic-mbed-Hamster-Feeder,代码行数:29,代码来源:eth_drv.cpp
示例4: ethernetif_init
/*
* Initialization.
*/
static err_t ethernetif_init(struct netif *netif) {
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "lwip";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LWIP_LINK_SPEED);
netif->state = NULL;
netif->name[0] = LWIP_IFNAME0;
netif->name[1] = LWIP_IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->linkoutput = low_level_output;
/* initialize the hardware */
low_level_init(netif);
return ERR_OK;
}
开发者ID:mandrake,项目名称:ChibiOS-Tiva,代码行数:31,代码来源:lwipthread.c
示例5: slipif_init
/**
* SLIP netif initialization
*
* Call the arch specific sio_open and remember
* the opened device in the state field of the netif.
*
* @param netif the lwip network interface structure for this slipif
* @return ERR_OK if serial line could be opened,
* ERR_IF is serial line couldn't be opened
*
* @note netif->num must contain the number of the serial port to open
* (0 by default)
*/
err_t
slipif_init(struct netif *netif)
{
LWIP_DEBUGF(SLIP_DEBUG, ("slipif_init: netif->num=%"U16_F"\n", (u16_t)netif->num));
netif->name[0] = 's';
netif->name[1] = 'l';
netif->output = slipif_output;
netif->mtu = MAX_SIZE;
netif->flags = NETIF_FLAG_POINTTOPOINT;
/* Try to open the serial port (netif->num contains the port number). */
netif->state = sio_open(netif->num);
if (!netif->state) {
/* Opening the serial port failed. */
return ERR_IF;
}
/* initialize the snmp variables and counters inside the struct netif
* ifSpeed: no assumption can be made without knowing more about the
* serial line!
*/
NETIF_INIT_SNMP(netif, snmp_ifType_slip, 0);
/* Create a thread to poll the serial line. */
sys_thread_new(SLIPIF_THREAD_NAME, slipif_loop, netif, SLIPIF_THREAD_STACKSIZE, SLIPIF_THREAD_PRIO);
return ERR_OK;
}
开发者ID:EnricoGiordano1992,项目名称:Tesi,代码行数:42,代码来源:slipif.c
示例6: slipif_init
/**
* SLIP netif initialization
*
* Call the arch specific sio_open and remember
* the opened device in the state field of the netif.
*
* @param netif the lwip network interface structure for this slipif
* @return ERR_OK if serial line could be opened,
* ERR_MEM if no memory could be allocated,
* ERR_IF is serial line couldn't be opened
*
* @note netif->num must contain the number of the serial port to open
* (0 by default). If netif->state is != NULL, it is interpreted as an
* u8_t pointer pointing to the serial port number instead of netif->num.
*
*/
err_t
slipif_init(struct netif *netif)
{
struct slipif_priv *priv;
u8_t sio_num;
LWIP_DEBUGF(SLIP_DEBUG, ("slipif_init: netif->num=%"U16_F"\n", (u16_t)netif->num));
/* Allocate private data */
priv = (struct slipif_priv *)mem_malloc(sizeof(struct slipif_priv));
if (!priv) {
return ERR_MEM;
}
netif->name[0] = 's';
netif->name[1] = 'l';
netif->output = slipif_output_v4;
#if LWIP_IPV6
netif->output_ip6 = slipif_output_v6;
#endif /* LWIP_IPV6 */
netif->mtu = SLIP_MAX_SIZE;
/* netif->state or netif->num contain the port number */
if (netif->state != NULL) {
sio_num = *(u8_t*)netif->state;
} else {
sio_num = netif->num;
}
/* Try to open the serial port. */
priv->sd = sio_open(sio_num);
if (!priv->sd) {
/* Opening the serial port failed. */
mem_free(priv);
return ERR_IF;
}
/* Initialize private data */
priv->p = NULL;
priv->q = NULL;
priv->state = SLIP_RECV_NORMAL;
priv->i = 0;
priv->recved = 0;
#if SLIP_RX_FROM_ISR
priv->rxpackets = NULL;
#endif
netif->flags |= NETIF_FLAG_POINTTOPOINT;
netif->state = priv;
/* initialize the snmp variables and counters inside the struct netif */
NETIF_INIT_SNMP(netif, snmp_ifType_slip, SLIP_SIO_SPEED(priv->sd));
#if SLIP_USE_RX_THREAD
/* Create a thread to poll the serial line. */
sys_thread_new(SLIPIF_THREAD_NAME, slipif_loop_thread, netif,
SLIPIF_THREAD_STACKSIZE, SLIPIF_THREAD_PRIO);
#endif /* SLIP_USE_RX_THREAD */
return ERR_OK;
}
开发者ID:Ga-vin,项目名称:libsylixos,代码行数:75,代码来源:slipif.c
示例7: wlanif_init
/**
* Should be called at the beginning of the program to set up the
* network interface. It calls the function low_level_init() to do the
* actual setup of the hardware.
*
* This function should be passed as a parameter to netif_add().
*
* @param netif the lwip network interface structure for this ethernetif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
* any other err_t on error
*/
err_t
wlanif_init(struct netif *netif)
{
LWIP_ASSERT("netif != NULL", (netif != NULL));
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
#ifdef LWIP_ESP8266
//TO_DO
/*
if ((struct netif *)wifi_get_netif(STATION_IF) == netif) {
if (default_hostname == 1) {
wifi_station_set_default_hostname(netif->hwaddr);
}
netif->hostname = hostname;
} else {
netif->hostname = NULL;
}
*/
sprintf(hostname, "ESP_%02X%02X%02X", netif->hwaddr[3], netif->hwaddr[4], netif->hwaddr[5]);
netif->hostname = hostname;
#else
sprintf(hostname, "ESP_%02X%02X%02X", netif->hwaddr[3], netif->hwaddr[4], netif->hwaddr[5]);
netif->hostname = hostname;
#endif
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
#if LWIP_IPV6
netif->output_ip6 = ethip6_output;
#endif /* LWIP_IPV6 */
netif->linkoutput = low_level_output;
/* initialize the hardware */
low_level_init(netif);
return ERR_OK;
}
开发者ID:EagleSmith,项目名称:ESP31B,代码行数:66,代码来源:wlanif.c
示例8: netif_loopif_init
/**
* Initialize a lwip network interface structure for a loopback interface
*
* @param netif the lwip network interface structure for this loopif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
*/
static int8_t netif_loopif_init(struct netif *netif)
{
/* initialize the snmp variables and counters inside the struct netif
* ifSpeed: no assumption can be made!
*/
NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0);
netif->name[0] = 'l';
netif->name[1] = 'o';
netif->output = netif_loop_output;
return ERR_OK;
}
开发者ID:xskali12,项目名称:canshark,代码行数:19,代码来源:netif.c
示例9: ethernetif_init
/**
* Should be called at the beginning of the program to set up the
* network interface. It calls the function low_level_init() to do the
* actual setup of the hardware.
*
* This function should be passed as a parameter to netif_add().
*
* @param netif the lwip network interface structure for this ethernetif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
* any other err_t on error
*/
err_t
ethernetif_init(struct netif *netif)
{
/* struct ethernetif *ethernetif; */
LWIP_ASSERT("netif != NULL", (netif != NULL));
/*ethernetif = (struct ethernetif *)mem_malloc(sizeof(struct ethernetif));
if (ethernetif == NULL)
{
LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_init: out of memory\n"));
return ERR_MEM;
}*/
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "lwip";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
#if LWIP_SNMP
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 100000000);
#endif /* LWIP_SNMP */
netif->state = NULL; /* ethernetif;
ethernetif->ethaddr = (struct eth_addr *)&(netif->hwaddr[0]); */
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->linkoutput = low_level_output;
/* initialize the hardware */
low_level_init(netif);
/* DONE BY THE LWIP TASK.
// Initializes the ARP table and queue.
etharp_init();
// You must call etharp_tmr at a ARP_TMR_INTERVAL (5 seconds) regular interval
// after this initialization.
sys_timeout(ARP_TMR_INTERVAL, (sys_timeout_handler)arp_timer, NULL);
*/
return ERR_OK;
}
开发者ID:garlicnation,项目名称:zwave,代码行数:64,代码来源:ethernetif.c
示例10: ethernetif_init
/**
* Should be called at the beginning of the program to set up the
* network interface. It calls the function low_level_init() to do the
* actual setup of the hardware.
*
* This function should be passed as a parameter to netif_add().
*
* @param netif the lwip network interface structure for this ethernetif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
* any other err_t on error
*/
err_t ethernetif_init(struct netif *netif)
{
struct ethernetif *ethernetif;
LWIP_ASSERT("netif != NULL", (netif != NULL));
ethernetif = mem_malloc(sizeof(struct ethernetif));
if (ethernetif == NULL)
{
LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_init: out of memory\n"));
return ERR_MEM;
}
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
netif->state = ethernetif;
netif->hwaddr_len = 6;
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
netif->mtu = 1500;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...)
*/
netif->output = etharp_output;
netif->linkoutput = low_level_output;
ethernetif->ethaddr = (struct eth_addr *)&(netif->hwaddr[0]);
/* initialize the hardware */
low_level_init(netif);
etharp_init();
if (!sys_thread_new((char *)"eth_thread", ethernetif_loop, netif,
DEFAULT_THREAD_STACKSIZE, DEFAULT_THREAD_PRIO))
{
LWIP_DEBUGF(NETIF_DEBUG,
("ethernetif_init: max number of threads exceeded\n"));
mem_free(ethernetif);
return ERR_MEM;
}
return ERR_OK;
}
开发者ID:aurelien-rainone,项目名称:bertos,代码行数:64,代码来源:ethernetif.c
示例11: tapif_init
/*-----------------------------------------------------------------------------------*/
err_t
tapif_init(struct netif *netif)
{
struct ethernetif *ethernetif;
LWIP_ASSERT("netif != NULL", (netif != NULL));
ethernetif = mem_malloc(sizeof(struct ethernetif));
if (ethernetif == NULL) {
LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_init: out of memory\n"));
return ERR_MEM;
}
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "lwip";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
netif->state = ethernetif;
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->linkoutput = low_level_output;
ethernetif->ethaddr = (struct eth_addr *)&(netif->hwaddr[0]);
/* initialize the hardware */
low_level_init(netif);
return ERR_OK;
//初始化mac地址 然后调用can初始化函数
if (!can_hardware_init())
{
return ERR_IF;
}
return ERR_OK;
}
开发者ID:JiangDongBuYi,项目名称:lwip,代码行数:53,代码来源:tapif.c
示例12: init
/**
* Should be called at the beginning of the program to set up the
* network interface. It calls the function init() to do the
* actual setup of the hardware.
*
* This function should be passed as a parameter to netif_add().
*
* @param netif the lwip network interface structure for this ethernetif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
* any other err_t on error
*/
static err_t init(struct netif *netif)
{
struct ethernetif *ethernetif;
LWIP_ASSERT("netif != NULL", (netif != NULL));
LWIP_ASSERT("state != NULL", (netif->state != NULL));
ethernetif = netif->state;
#if LWIP_NETIF_HOSTNAME
// Initialize interface hostname.
netif->hostname = "lwip";
#endif // LWIP_NETIF_HOSTNAME
/* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
#ifdef LINK_SPEED_OF_YOUR_NETIF_IN_BPS // RICH: Where to get this?
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd,
LINK_SPEED_OF_YOUR_NETIF_IN_BPS);
#endif
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...).
*/
netif->output = etharp_output;
#if LWIP_IPV6
netif->output_ip6 = ethip6_output;
#endif // LWIP_IPV6
netif->linkoutput = linkoutput;
// Device capabilities.
// Don't set NETIF_FLAG_ETHARP if this device is not an ethernet one.
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
// Initialize the hardware and send back the Mac address.
int s = ethernetif->ops->init(ethernetif->priv,
&netif->hwaddr_len, netif->hwaddr,
&netif->mtu, NULL);
if (s < 0) {
return ERR_ARG; // RICH: Better error?
}
return ERR_OK;
}
开发者ID:cya410,项目名称:libraries,代码行数:62,代码来源:ethernetif_driver.c
示例13: slipif_init
/**
* SLIP netif initialization
*
* Call the arch specific sio_open and remember
* the opened device in the state field of the netif.
*
* @param netif the lwip network interface structure for this slipif
* @return ERR_OK if serial line could be opened,
* ERR_MEM if no memory could be allocated,
* ERR_IF is serial line couldn't be opened
*
* @note netif->num must contain the number of the serial port to open
* (0 by default)
*/
err_t
slipif_init(struct netif *netif)
{
struct slipif_priv *priv;
LWIP_DEBUGF(SLIP_DEBUG, ("slipif_init: netif->num=%"U16_F"\n", (u16_t)netif->num));
/* Allocate private data */
priv = mem_malloc(sizeof(struct slipif_priv));
if (!priv) {
return ERR_MEM;
}
netif->name[0] = 's';
netif->name[1] = 'l';
netif->output = slipif_output;
netif->mtu = SLIP_MAX_SIZE;
netif->flags |= NETIF_FLAG_POINTTOPOINT;
/* Try to open the serial port (netif->num contains the port number). */
priv->sd = sio_open(netif->num);
if (!priv->sd) {
/* Opening the serial port failed. */
mem_free(priv);
return ERR_IF;
}
/* Initialize private data */
priv->p = NULL;
priv->q = NULL;
priv->state = SLIP_RECV_NORMAL;
priv->i = 0;
priv->recved = 0;
netif->state = priv;
/* initialize the snmp variables and counters inside the struct netif
* ifSpeed: no assumption can be made without knowing more about the
* serial line!
*/
NETIF_INIT_SNMP(netif, snmp_ifType_slip, 0);
#if !NO_SYS
/* Create a thread to poll the serial line. */
sys_thread_new(SLIPIF_THREAD_NAME, slipif_loop_thread, netif,
SLIPIF_THREAD_STACKSIZE, SLIPIF_THREAD_PRIO);
#endif
return ERR_OK;
}
开发者ID:B-Rich,项目名称:NUL,代码行数:63,代码来源:slipif.c
示例14: ethernetif_init
err_t ethernetif_init( struct netif *netif )
{
struct ethernetif *ethernetif;
LWIP_ASSERT( "netif != NULL", ( netif != NULL ) );
ethernetif = mem_malloc( sizeof(struct ethernetif ) );
if ( ethernetif == NULL )
{
LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_init: out of memory\n"));
return ERR_MEM;
}
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "swet";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP( netif, snmp_ifType_ethernet_csmacd, 100 );
netif->state = ethernetif;
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...)
*/
netif->output = etharp_output;
netif->linkoutput = low_level_output;
ethernetif->ethaddr = (struct eth_addr *)&( netif->hwaddr[ 0 ] );
low_level_init( netif );
// Configure Ethernet service interrupt
//ConfigINT3( EXT_INT_ENABLE | FALLING_EDGE_INT | EXT_INT_PRI_2 );
return ERR_OK;
}
开发者ID:grodansparadis,项目名称:sweetbox,代码行数:47,代码来源:enc28j60_ethernetif.c
示例15: netif_loopif_init
/**
* Initialize a lwip network interface structure for a loopback interface
*
* @param netif the lwip network interface structure for this loopif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
*/
static err_t
netif_loopif_init(struct netif *netif)
{
/* initialize the snmp variables and counters inside the struct netif
* ifSpeed: no assumption can be made!
*/
NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0);
netif->name[0] = 'l';
netif->name[1] = 'o';
#if LWIP_IPV4
netif->output = netif_loop_output_ipv4;
#endif
#if LWIP_IPV6
netif->output_ip6 = netif_loop_output_ipv6;
#endif
return ERR_OK;
}
开发者ID:bastien-roucaries,项目名称:lwip,代码行数:25,代码来源:netif.c
示例16: ethernetif_init
/**
* Should be called at the beginning of the program to set up the
* network interface. It calls the function low_level_init() to do the
* actual setup of the hardware.
*
* This function should be passed as a parameter to netif_add().
*
* @param netif the lwip network interface structure for this ethernetif
* @return ERR_OK if the loopif is initialized
* ERR_MEM if private data couldn't be allocated
* any other err_t on error
*/
err_t ethernetif_init(struct netif *netif)
{
LWIP_DRIVER_DATA* drv_data = (LWIP_DRIVER_DATA*)netif;
LWIP_ASSERT("netif != NULL", (netif != NULL));
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "lwip";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 1000000);
// netif->state = ðernetif_data;
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->linkoutput = low_level_output;
// drv_data->ethaddr = (struct eth_addr *) &(netif->hwaddr[0]);
drv_data->txq.qread = drv_data->txq.qwrite = 0;
drv_data->txq.overflow = 0;
drv_data->rxq.qread = drv_data->rxq.qwrite = 0;
drv_data->rxq.overflow = 0;
/* initialize the hardware */
low_level_init(netif);
return (ERR_OK);
}
开发者ID:bratkov,项目名称:tmos,代码行数:50,代码来源:lwip_drv.cpp
示例17: lpc17xx_if_init
err_t
lpc17xx_if_init(struct netif *netif)
{
LWIP_ASSERT("netif != NULL", (netif != NULL));
/* We only have one EMAC on the lpc17xx, so... */
if (!__sync_bool_compare_and_swap(&lpc17xx_if_got_init, 0, 1))
return ERR_VAL;
#if LWIP_NETIF_HOSTNAME
/* Initialize interface hostname */
netif->hostname = "lwip";
#endif /* LWIP_NETIF_HOSTNAME */
/*
* Initialize the snmp variables and counters inside the struct netif.
* The last argument should be replaced with your link speed, in units
* of bits per second.
*/
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 746);
netif->state = NULL;
netif->name[0] = IFNAME0;
netif->name[1] = IFNAME1;
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->linkoutput = low_level_output;
/* initialize the hardware */
if (!low_level_init(netif)) {
lpc17xx_if_got_init = 0;
return ERR_IF;
}
return ERR_OK;
}
开发者ID:dtbinh,项目名称:M2,代码行数:38,代码来源:lpc17xx-if.c
示例18: _ethernet_if_init
//A local helper routine,called by lwIP to initialize a netif object.
static err_t _ethernet_if_init(struct netif *netif)
{
__ETHERNET_INTERFACE* pEthInt = NULL;
if (NULL == netif)
{
return !ERR_OK;
}
pEthInt = netif->state;
if (NULL == pEthInt)
{
return !ERR_OK;
}
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, 10000000);
netif->name[0] = pEthInt->ethName[0];
netif->name[1] = pEthInt->ethName[1];
/* We directly use etharp_output() here to save a function call.
* You can instead declare your own function an call etharp_output()
* from it if you have to do some checks before sending (e.g. if link
* is available...) */
netif->output = etharp_output;
netif->hwaddr_len = ETH_MAC_LEN;
netif->linkoutput = eth_level_output;
/* maximum transfer unit */
netif->mtu = ETH_DEFAULT_MTU;
/* device capabilities */
/* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
//Set the MAC address of this interface.
memcpy(netif->hwaddr, pEthInt->ethMac, ETH_MAC_LEN);
return ERR_OK;
}
开发者ID:AlexShiLucky,项目名称:HelloX_OS,代码行数:37,代码来源:lwip_pro.c
示例19: main
/**
* @brief main routine for example_lwip_tcpecho_sa_18xx43xx
* @return Function should not exit.
*/
int main(void)
{
uint32_t physts;
ip_addr_t ipaddr, netmask, gw;
prvSetupHardware();
/* Initialize LWIP */
lwip_init();
LWIP_DEBUGF(LWIP_DBG_ON, ("Starting LWIP TCP echo server...\n"));
/* Static IP assignment */
#if LWIP_DHCP
IP4_ADDR(&gw, 0, 0, 0, 0);
IP4_ADDR(&ipaddr, 0, 0, 0, 0);
IP4_ADDR(&netmask, 0, 0, 0, 0);
#else
IP4_ADDR(&gw, 10, 1, 10, 1);
IP4_ADDR(&ipaddr, 10, 1, 10, 234);
IP4_ADDR(&netmask, 255, 255, 255, 0);
APP_PRINT_IP(&ipaddr);
#endif
/* Add netif interface for lpc17xx_8x */
netif_add(&lpc_netif, &ipaddr, &netmask, &gw, NULL, lpc_enetif_init,
ethernet_input);
netif_set_default(&lpc_netif);
netif_set_up(&lpc_netif);
#if LWIP_DHCP
dhcp_start(&lpc_netif);
#endif
/* Initialize and start application */
echo_init();
/* This could be done in the sysTick ISR, but may stay in IRQ context
too long, so do this stuff with a background loop. */
while (1) {
/* Handle packets as part of this loop, not in the IRQ handler */
lpc_enetif_input(&lpc_netif);
/* lpc_rx_queue will re-qeueu receive buffers. This normally occurs
automatically, but in systems were memory is constrained, pbufs
may not always be able to get allocated, so this function can be
optionally enabled to re-queue receive buffers. */
#if 0
while (lpc_rx_queue(&lpc_netif)) {}
#endif
/* Free TX buffers that are done sending */
lpc_tx_reclaim(&lpc_netif);
/* LWIP timers - ARP, DHCP, TCP, etc. */
sys_check_timeouts();
/* Call the PHY status update state machine once in a while
to keep the link status up-to-date */
physts = lpcPHYStsPoll();
/* Only check for connection state when the PHY status has changed */
if (physts & PHY_LINK_CHANGED) {
if (physts & PHY_LINK_CONNECTED) {
Board_LED_Set(0, true);
/* Set interface speed and duplex */
if (physts & PHY_LINK_SPEED100) {
Chip_ENET_SetSpeed(LPC_ETHERNET, 1);
NETIF_INIT_SNMP(&lpc_netif, snmp_ifType_ethernet_csmacd, 100000000);
}
else {
Chip_ENET_SetSpeed(LPC_ETHERNET, 0);
NETIF_INIT_SNMP(&lpc_netif, snmp_ifType_ethernet_csmacd, 10000000);
}
if (physts & PHY_LINK_FULLDUPLX) {
Chip_ENET_SetDuplex(LPC_ETHERNET, true);
}
else {
Chip_ENET_SetDuplex(LPC_ETHERNET, false);
}
netif_set_link_up(&lpc_netif);
}
else {
Board_LED_Set(0, false);
netif_set_link_down(&lpc_netif);
}
DEBUGOUT("Link connect status: %d\r\n", ((physts & PHY_LINK_CONNECTED) != 0));
}
}
/* Never returns, for warning only */
return 0;
}
开发者ID:edarring,项目名称:lpcopen,代码行数:100,代码来源:lwip_tcpecho_sa.c
示例20: netfrontif_init
/**
* Initializes and sets up a netfront interface for lwIP.
* This function should be passed as a parameter to netfrontif_add().
*
* @param netif
* the lwip network interface structure for this netfrontif
* @return
* ERR_OK if the interface was successfully initialized;
* An err_t value otherwise
*/
err_t netfrontif_init(struct netif *netif)
{
struct netfrontif *nfi;
static uint8_t netfrontif_id = 0;
LWIP_ASSERT("netif != NULL", (netif != NULL));
if (!(netif->state)) {
nfi = mem_calloc(1, sizeof(*nfi));
if (!nfi) {
LWIP_DEBUGF(NETIF_DEBUG, ("netfrontif_init: "
"Could not allocate \n"));
goto err_out;
}
netif->state = nfi;
nfi->_state_is_private = 1;
nfi->_dev_is_private = 1;
nfi->_hwaddr_is_private = 1;
} else {
nfi = netif->state;
nfi->_state_is_private = 0;
nfi->_dev_is_private = !(nfi->dev);
nfi->_hwaddr_is_private = eth_addr_cmp(&nfi->hwaddr, ðzero);
}
/* Netfront */
if (nfi->_dev_is_private) {
/* user did not provide an opened netfront, we need to do it here */
if (!nfi->_state_is_private) {
/* use vif_id to open an specific NIC interface */
/* Note: netfront will duplicate the passed nodename */
char nodename[128];
snprintf(nodename, sizeof(nodename), "device/vif/%u", nfi->vif_id);
nfi->dev = init_netfront(nodename, NULL, NULL, NULL);
} else {
/* open the next available net interface */
nfi->dev = init_netfront(NULL, NULL, NULL, NULL);
}
if (!nfi->dev) {
LWIP_DEBUGF(NETIF_DEBUG, ("netfrontif_init: "
"Could not init netfront\n"));
goto err_free_nfi;
}
}
netfront_set_rx_pbuf_handler(nfi->dev, netfrontif_rx_handler, netif);
/* Interface identifier */
netif->name[0] = NETFRONTIF_NPREFIX;
netif->name[1] = '0' + netfrontif_id;
netfrontif_id++;
/* We directly use etharp_output() here to save a function call.
* Instead, there could be function declared that calls etharp_output()
* only if there is a link is available... */
netif->output = etharp_output;
netif->linkoutput = netfrontif_transmit;
#if LWIP_NETIF_REMOVE_CALLBACK
netif->remove_callback = netfrontif_exit;
#endif /* CONFIG_NETIF_REMOVE_CALLBACK */
/* Hardware address */
if (nfi->_hwaddr_is_private) {
if (!netfront_get_hwaddr(nfi->dev, &nfi->hwaddr)) {
LWIP_DEBUGF(NETIF_DEBUG, ("netfrontif_init: %c%c: "
"Could not retrieve hardware address\n",
netif->name[0], netif->name[1]));
goto err_shutdown_netfront;
}
} else {
LWIP_DEBUGF(NETIF_DEBUG, ("netfrontif_init: %c%c: "
"Overwriting hardware address\n",
netif->name[0], netif->name[1]));
}
SMEMCPY(&netif->hwaddr, &nfi->hwaddr, ETHARP_HWADDR_LEN);
netif->hwaddr_len = ETHARP_HWADDR_LEN;
LWIP_DEBUGF(NETIF_DEBUG, ("netfrontif_init: %c%c: hardware address: "
"%02x:%02x:%02x:%02x:%02x:%02x\n",
netif->name[0], netif->name[1],
netif->hwaddr[0],
netif->hwaddr[1],
netif->hwaddr[2],
netif->hwaddr[3],
netif->hwaddr[4],
netif->hwaddr[5]));
/* Initialize the snmp variables and counters inside the struct netif.
* The last argument is the link speed, in units of bits per second. */
NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, NETFRONTIF_SPEED);
//.........这里部分代码省略.........
开发者ID:cnplab,项目名称:mini-os,代码行数:101,代码来源:lwip-net.c
注:本文中的NETIF_INIT_SNMP函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论