Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Add a network device and hardware as a network interface.

Files

net_if.h/net_if.c

Prototype

Code Block

          NET_IF_NBR NetIF_Add(void    *if_api,
                               void    *dev_api,
                               void    *dev_bsp,
                               void    *dev_cfg,
                               void    *ext_api,
                               void    *ext_cfg,
                               NET_ERR *p_err);

Arguments

if_api

Pointer to the desired link-layer API for this network interface and device hardware. In most cases, the The desired link-layer interface will point to the Ethernet API , (NetIF_API_Ether (see also section L16-1(1)) or the WiFi API,(NetIF_API_WiFi).

dev_api

Pointer to the desired device driver API for this network interface (see also section 5-3-3 “Adding an Ethernet Interface” and section 5-4-2 “Adding a Wireless Interface”).

dev_bsp

Pointer to the specific device's BSP interface for this network interface (see also Chapter 6, “Network section Network Board Support Package”Package).

dev_cfg

Pointer to a configuration structure used to configure the device hardware for the specific network interface (see also Chapter 5, “Network Interface Configuration”section Network Interface Configuration).

phyext_api

Pointer to an optional physical layer device driver API for this network interface. In most cases, the generic physical layer device API will be used, NetPhy_API_Generic, but for Ethernet devices that have non-MII or non-RMII compliant physical layer components, another device-specific physical layer device driver API may be necessary. See also section 7-4 “Ethernet PHY API Implementation”.

...

specific network extension layer API.

ext_cfg

Pointer to a configuration structure used to configure the physical layer hardware for the specific network interface (see also section 5-3-2 “Ethernet PHY Configuration”).

...

specific network extension layer configuration.

p_err

Pointer to variable that will receive the return error code from this function:

NET_IF_ERR_NONE
NET_IF_ERR_NULL_PTR
NET_IF_ERR_INVALID_IF
NET_IF_ERR_INVALID_CFG
NET_IF_ERR_NONE_AVAIL
NET_BUF_ERR_POOL_INIT
NET_BUF_ERR_INVALID_POOL_TYPE
NET_BUF_ERR_INVALID_POOL_ADDR
NET_BUF_ERR_INVALID_POOL_SIZE
NET_BUF_ERR_INVALID_POOL_QTY
NET_BUF_ERR_INVALID_SIZE
NET_OS_ERR_INIT_DEV_TX_RDY
NET_OS_ERR_INIT_DEV_TX_RDY_NAME
NET_OSERR_ERRFAULT_LOCK_ACQUIRE

Returned Value

Network interface number, if device and hardware successfully added;

NET_IF_NBR_NONE, otherwise.

Required Configuration

None.

Notes / Warnings

The first network interface added and started is the default interface used for all default communication. See also section C-12-1 and section C-12-2.Both physical layer API and configuration parameters must ,either be specified or passed NULL pointers

When a PHY layer is present, the PHY API and configuration need to be indicate in the ext_api and ext_cfg arguments.

Additional error codes may be returned by the specific interface or device driver.

See section 16-1-1 “Adding Network Interfaces” for Initializing Interfaces for a detailed example of how to add an interface.