ICSS-EMAC (Industrial Communications Sub-system Ethernet Media Access Controller) APIs to transmit and receive packets with a firmware based Ethernet switch that has been implemented on PRUICSS.
|
typedef struct ICSS_EMAC_Config_s * | ICSS_EMAC_Handle |
| Alias for ICSS EMAC Handle containing base addresses and modules. More...
|
|
typedef int32_t(* | ICSS_EMAC_CallBack) (void *arg0, void *arg1, void *arg2) |
| definition for a generic protocol callback function More...
|
|
◆ ICSS_EMAC_MAX_PORTS_PER_INSTANCE
#define ICSS_EMAC_MAX_PORTS_PER_INSTANCE (2) |
Maximum number of Ports in a single ICSS
◆ ICSS_EMAC_MODE_MAC1
#define ICSS_EMAC_MODE_MAC1 (1U) |
Single EMAC Mode. Port 1 Enabled.
◆ ICSS_EMAC_MODE_MAC2
#define ICSS_EMAC_MODE_MAC2 (2U) |
Single EMAC Mode. Port 2 Enabled.
◆ ICSS_EMAC_MODE_SWITCH
#define ICSS_EMAC_MODE_SWITCH (3U) |
◆ ICSS_EMAC_MODE_DUALMAC
#define ICSS_EMAC_MODE_DUALMAC (4U) |
Dual MAC Mode. Both Ports Enabled.
◆ ICSS_EMAC_LEARNING_DISABLE
#define ICSS_EMAC_LEARNING_DISABLE (0U) |
Driver-based Learning Mode Disabled
◆ ICSS_EMAC_LEARNING_ENABLE
#define ICSS_EMAC_LEARNING_ENABLE (1U) |
Driver-based Learning Mode Enabled
◆ ICSS_EMAC_ENABLE_PACING
#define ICSS_EMAC_ENABLE_PACING (0) |
Interrupt pacing enabled.
◆ ICSS_EMAC_DISABLE_PACING
#define ICSS_EMAC_DISABLE_PACING (1) |
Interrupt pacing disabled.
◆ ICSS_EMAC_INTR_PACING_MODE1
#define ICSS_EMAC_INTR_PACING_MODE1 (0) |
Frame Count based Interrupt pacing.
◆ ICSS_EMAC_QUEUE1
#define ICSS_EMAC_QUEUE1 ((uint32_t)0U) |
◆ ICSS_EMAC_QUEUE2
#define ICSS_EMAC_QUEUE2 ((uint32_t)1U) |
◆ ICSS_EMAC_QUEUE3
#define ICSS_EMAC_QUEUE3 ((uint32_t)2U) |
◆ ICSS_EMAC_QUEUE4
#define ICSS_EMAC_QUEUE4 ((uint32_t)3U) |
◆ ICSS_EMAC_QUEUE5
#define ICSS_EMAC_QUEUE5 ((uint32_t)4U) |
◆ ICSS_EMAC_QUEUE6
#define ICSS_EMAC_QUEUE6 ((uint32_t)5U) |
◆ ICSS_EMAC_QUEUE7
#define ICSS_EMAC_QUEUE7 ((uint32_t)6U) |
◆ ICSS_EMAC_QUEUE8
#define ICSS_EMAC_QUEUE8 ((uint32_t)7U) |
◆ ICSS_EMAC_QUEUE9
#define ICSS_EMAC_QUEUE9 ((uint32_t)8U) |
◆ ICSS_EMAC_QUEUE10
#define ICSS_EMAC_QUEUE10 ((uint32_t)9U) |
◆ ICSS_EMAC_QUEUE11
#define ICSS_EMAC_QUEUE11 ((uint32_t)10U) |
◆ ICSS_EMAC_QUEUE12
#define ICSS_EMAC_QUEUE12 ((uint32_t)11U) |
◆ ICSS_EMAC_QUEUE13
#define ICSS_EMAC_QUEUE13 ((uint32_t)12U) |
◆ ICSS_EMAC_QUEUE14
#define ICSS_EMAC_QUEUE14 ((uint32_t)13U) |
◆ ICSS_EMAC_QUEUE15
#define ICSS_EMAC_QUEUE15 ((uint32_t)14U) |
◆ ICSS_EMAC_QUEUE16
#define ICSS_EMAC_QUEUE16 ((uint32_t)15U) |
◆ ICSS_EMAC_COLQUEUE
#define ICSS_EMAC_COLQUEUE ((uint32_t)16U) |
◆ ICSS_EMAC_NUMQUEUES
#define ICSS_EMAC_NUMQUEUES ((uint32_t)17U) |
◆ ICSS_EMAC_SWITCH_INSTANCE_CODE
#define ICSS_EMAC_SWITCH_INSTANCE_CODE ((uint32_t)0u) |
Internal functions return error codes Switch Instance Code
◆ ICSS_EMAC_SWITCH_ERROR_BASE
#define ICSS_EMAC_SWITCH_ERROR_BASE ((uint32_t)0x200001Fu) |
◆ ICSS_EMAC_SWITCH_ERROR_CODE
◆ ICSS_EMAC_SWITCH_ERROR_INFO
Switch Error/Informational
◆ ICSS_EMAC_SWITCH_ERROR_WARNING
◆ ICSS_EMAC_SWITCH_ERROR_MINOR
◆ ICSS_EMAC_SWITCH_ERROR_MAJOR
◆ ICSS_EMAC_SWITCH_ERROR_CRITICAL
◆ ICSS_EMAC_SWITCH_SUCCESS
#define ICSS_EMAC_SWITCH_SUCCESS (0u) |
◆ ICSS_EMAC_ERR_DEV_ALREADY_INSTANTIATED
Error codes Device with same instance ID already created.
◆ ICSS_EMAC_ERR_DEV_NOT_INSTANTIATED
Device is not instantiated yet.
◆ ICSS_EMAC_ERR_SWITCH_INVALID_PARAM
Function or calling parameter is invalid
◆ ICSS_EMAC_ERR_CH_INVALID
◆ ICSS_EMAC_ERR_CH_ALREADY_INIT
Channel already initialized and setup
◆ ICSS_EMAC_ERR_TX_CH_ALREADY_CLOSED
Tx Channel already closed. Channel close failed
◆ ICSS_EMAC_ERR_TX_CH_NOT_OPEN
◆ ICSS_EMAC_ERR_TX_NO_LINK
◆ ICSS_EMAC_ERR_TX_OUT_OF_BD
Tx ran out of Buffer descriptors to use.
◆ ICSS_EMAC_ERR_RX_CH_INVALID
Rx Channel invalid number.
◆ ICSS_EMAC_ERR_RX_CH_ALREADY_INIT
Rx Channel already setup.
◆ ICSS_EMAC_ERR_RX_CH_ALREADY_CLOSED
Rx Channel already closed. Channel close failed.
◆ ICSS_EMAC_ERR_RX_CH_NOT_OPEN
◆ ICSS_EMAC_ERR_DEV_ALREADY_CREATED
EMAC device already created.
◆ ICSS_EMAC_ERR_DEV_NOT_OPEN
Device is not open or not ready
◆ ICSS_EMAC_ERR_DEV_ALREADY_CLOSED
Device close failed. Device already closed.
◆ ICSS_EMAC_ERR_DEV_ALREADY_OPEN
Device open failed. Device already open.
◆ ICSS_EMAC_ERR_RX_BUFFER_ALLOC_FAIL
Rx Buffer Descriptor allocation failed.
◆ ICSS_EMAC_SWITCH_INTERNAL_FAILURE
◆ ICSS_EMAC_SWITCH_VLAN_UNAWARE_MODE
VLAN support not enabled in EMAC
◆ ICSS_EMAC_SWITCH_ALE_TABLE_FULL
◆ ICSS_EMAC_SWITCH_ADDR_NOTFOUND
Multicast/Unicast/OUI Address not found in ALE.
◆ ICSS_EMAC_SWITCH_INVALID_VLANID
◆ ICSS_EMAC_SWITCH_INVALID_PORT
◆ ICSS_EMAC_SWITCH_BD_ALLOC_FAIL
Buffer Descriptor Allocation failure. OOM
◆ ICSS_EMAC_ERR_BADPACKET
Supplied packet was invalid
◆ ICSS_EMAC_ERR_COLLISION_FAIL
◆ ICSS_EMAC_ERR_MACFATAL
Fatal Error - EMACClose() required
◆ ICSS_EMAC_MAXMTU
#define ICSS_EMAC_MAXMTU (1518U) |
Maximum Valid size (incl header + VLAN TAG..., no CRC)
◆ ICSS_EMAC_MINMTU
#define ICSS_EMAC_MINMTU (14U) |
Minimum Valid size ( DA + SA + Ethertype)
◆ ICSS_EMAC_PORT_0
#define ICSS_EMAC_PORT_0 (0) |
Used to specify host side port
◆ ICSS_EMAC_PORT_1
#define ICSS_EMAC_PORT_1 (1U) |
Used to specify physical port 1 MII 0 (tx)
◆ ICSS_EMAC_PORT_2
#define ICSS_EMAC_PORT_2 (2U) |
Used to specify physical port 2 MII 1 (tx)
◆ ICSS_EMAC_IOCTL_PORT_CTRL_DISABLE
#define ICSS_EMAC_IOCTL_PORT_CTRL_DISABLE (0u) |
ICSS_EMAC_IOCTL_PORT_CTRL options.
Generic IOCTL Enable macro
◆ ICSS_EMAC_IOCTL_PORT_CTRL_ENABLE
#define ICSS_EMAC_IOCTL_PORT_CTRL_ENABLE (1u) |
Generic IOCTL Disable macro
◆ ICSS_EMAC_STORM_PREV_CTRL_ENABLE
#define ICSS_EMAC_STORM_PREV_CTRL_ENABLE (0u) |
IOCTL Storm Control Enable command
◆ ICSS_EMAC_STORM_PREV_CTRL_DISABLE
#define ICSS_EMAC_STORM_PREV_CTRL_DISABLE (1u) |
IOCTL Storm Control Disable command
◆ ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS
#define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS (2u) |
IOCTL Storm Control set credit command
◆ ICSS_EMAC_STORM_PREV_CTRL_INIT
#define ICSS_EMAC_STORM_PREV_CTRL_INIT (3u) |
IOCTL Storm Control initialize command
◆ ICSS_EMAC_STORM_PREV_CTRL_RESET
#define ICSS_EMAC_STORM_PREV_CTRL_RESET (4u) |
IOCTL Storm Control reset command
◆ ICSS_EMAC_STORM_PREV_CTRL_ENABLE_BC
#define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_BC (5u) |
IOCTL Storm Control Enable command for BC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_DISABLE_BC
#define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_BC (6u) |
IOCTL Storm Control Disable command for BC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_BC
#define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_BC (7u) |
IOCTL Storm Control set credit command for BC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_INIT_BC
#define ICSS_EMAC_STORM_PREV_CTRL_INIT_BC (8u) |
IOCTL Storm Control initialize command for BC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_RESET_BC
#define ICSS_EMAC_STORM_PREV_CTRL_RESET_BC (9u) |
IOCTL Storm Control reset command for BC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_ENABLE_MC
#define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_MC (10u) |
IOCTL Storm Control Enable command for MC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_DISABLE_MC
#define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_MC (11u) |
IOCTL Storm Control Disable command for MC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_MC
#define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_MC (12u) |
IOCTL Storm Control set credit command for MC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_INIT_MC
#define ICSS_EMAC_STORM_PREV_CTRL_INIT_MC (13u) |
IOCTL Storm Control initialize command for MC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_RESET_MC
#define ICSS_EMAC_STORM_PREV_CTRL_RESET_MC (14u) |
IOCTL Storm Control reset command for MC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_ENABLE_UC
#define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_UC (15u) |
IOCTL Storm Control Enable command for UC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_DISABLE_UC
#define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_UC (16u) |
IOCTL Storm Control Disable command for UC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_UC
#define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_UC (17u) |
IOCTL Storm Control set credit command for UC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_INIT_UC
#define ICSS_EMAC_STORM_PREV_CTRL_INIT_UC (18u) |
IOCTL Storm Control initialize command for UC traffic
◆ ICSS_EMAC_STORM_PREV_CTRL_RESET_UC
#define ICSS_EMAC_STORM_PREV_CTRL_RESET_UC (19u) |
IOCTL Storm Control reset command for UC traffic
◆ ICSS_EMAC_LEARN_CTRL_UPDATE_TABLE
#define ICSS_EMAC_LEARN_CTRL_UPDATE_TABLE (0u) |
IOCTL Learning Table update command
◆ ICSS_EMAC_LEARN_CTRL_CLR_TABLE
#define ICSS_EMAC_LEARN_CTRL_CLR_TABLE (1u) |
IOCTL Learning Table clear table command
◆ ICSS_EMAC_LEARN_CTRL_AGEING
#define ICSS_EMAC_LEARN_CTRL_AGEING (2u) |
IOCTL Learning Table age out entry command
◆ ICSS_EMAC_LEARN_CTRL_FIND_MAC
#define ICSS_EMAC_LEARN_CTRL_FIND_MAC (3u) |
IOCTL Learning Table find port from MAC ID command
◆ ICSS_EMAC_LEARN_CTRL_REMOVE_MAC
#define ICSS_EMAC_LEARN_CTRL_REMOVE_MAC (4u) |
IOCTL Learning Table remove a MAC ID from table command
◆ ICSS_EMAC_LEARN_CTRL_INC_COUNTER
#define ICSS_EMAC_LEARN_CTRL_INC_COUNTER (5u) |
IOCTL Learning Table increment counters (for ageing) command
◆ ICSS_EMAC_LEARN_CTRL_INIT_TABLE
#define ICSS_EMAC_LEARN_CTRL_INIT_TABLE (6u) |
IOCTL Learning Table initialize command
◆ ICSS_EMAC_LEARN_CTRL_SET_PORTSTATE
#define ICSS_EMAC_LEARN_CTRL_SET_PORTSTATE (7u) |
IOCTL Learning Table set port state command
◆ ICSS_EMAC_IOCTL_STAT_CTRL_GET
#define ICSS_EMAC_IOCTL_STAT_CTRL_GET (0u) |
IOCTL Statistics get from PRU command
◆ ICSS_EMAC_IOCTL_STAT_CTRL_CLEAR
#define ICSS_EMAC_IOCTL_STAT_CTRL_CLEAR (1u) |
IOCTL Statistics clear all counters command
◆ ICSS_EMAC_IOCTL_PORT_CTRL
#define ICSS_EMAC_IOCTL_PORT_CTRL (0u) |
IOCTL select port control API's command
◆ ICSS_EMAC_IOCTL_LEARNING_CTRL
#define ICSS_EMAC_IOCTL_LEARNING_CTRL (1u) |
IOCTL select learning Table API's command
◆ ICSS_EMAC_IOCTL_STORM_PREV_CTRL
#define ICSS_EMAC_IOCTL_STORM_PREV_CTRL (2u) |
IOCTL select Storm Prevention API's command
◆ ICSS_EMAC_IOCTL_STATS_CTRL
#define ICSS_EMAC_IOCTL_STATS_CTRL (3u) |
IOCTL select Statistics API's command
◆ ICSS_EMAC_IOCTL_PROMISCUOUS_CTRL
#define ICSS_EMAC_IOCTL_PROMISCUOUS_CTRL (4u) |
IOCTL select Promiscuous Mode API's command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL (5u) |
IOCTL select Multicast filtering API's command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL (6u) |
IOCTL select Vlan filtering API's command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE (0u) |
IOCTL Multicast filter Control Enable command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_DISABLE
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_DISABLE (1u) |
IOCTL Multicast filter Control Disable command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_OVERRIDE_HASHMASK
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_OVERRIDE_HASHMASK (2u) |
IOCTL Multicast filter Control override hashmask command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID (3u) |
IOCTL Multicast filter Control allow MC MAC ID command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_REMOVE_MACID
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_REMOVE_MACID (4u) |
IOCTL Multicast filter Control do not allow MC MAC ID command
◆ ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_GET_DROPPED
#define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_GET_DROPPED (5u) |
IOCTL Multicast filter Control do not allow MC MAC ID command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ENABLE_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ENABLE_CMD (0u) |
IOCTL Vlan filter Control Enable command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_DISABLE_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_DISABLE_CMD (1u) |
IOCTL Vlan filter Control Disable command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_ALL_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_ALL_CMD (2u) |
IOCTL Vlan filter allow Untagged frames Host Receive command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_NAL_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_NAL_CMD (3u) |
IOCTL Vlan filter do not allow Untagged frames Host Receive command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_ALL_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_ALL_CMD (4u) |
IOCTL Vlan filter allow Priority Tag frames Host Receive command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_NAL_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_NAL_CMD (5u) |
IOCTL Vlan filter do not allow Priority Tag frames Host Receive command
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ADD_VID_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ADD_VID_CMD (6u) |
IOCTL Vlan filter 4096 VIDs, 1 bit VIDs => 4096 bits = 512 bytes, ADD VLAN ID to allow packet to host
◆ ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_REMOVE_VID_CMD
#define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_REMOVE_VID_CMD (7u) |
IOCTL Vlan filter 4096 VIDs, 1 bit VIDs => 4096 bits = 512 bytes, Remove VLAN ID to do not allow packet to host
◆ ICSS_EMAC_LEARNING_PORT_STATE_LEARNING
#define ICSS_EMAC_LEARNING_PORT_STATE_LEARNING (0U) |
Enum for different port states.
◆ ICSS_EMAC_LEARNING_PORT_STATE_NOT_LEARNING
#define ICSS_EMAC_LEARNING_PORT_STATE_NOT_LEARNING (1U) |
◆ ICSS_EMAC_LEARNING_PORT_STATE_LOCKED
#define ICSS_EMAC_LEARNING_PORT_STATE_LOCKED (2U) |
◆ ICSS_EMAC_OBJECT_SIZE_IN_BYTES
#define ICSS_EMAC_OBJECT_SIZE_IN_BYTES (45200) |
◆ ICSS_EMAC_Handle
Alias for ICSS EMAC Handle containing base addresses and modules.
◆ ICSS_EMAC_CallBack
typedef int32_t(* ICSS_EMAC_CallBack) (void *arg0, void *arg1, void *arg2) |
definition for a generic protocol callback function
◆ ICSS_EMAC_init()
void ICSS_EMAC_init |
( |
void |
| ) |
|
This function initializes the ICSS_EMAC module.
◆ ICSS_EMAC_deinit()
void ICSS_EMAC_deinit |
( |
void |
| ) |
|
This function de-initializes the ICSS_EMAC module.
◆ ICSS_EMAC_params_init()
Initialize the parmeters data structure with defaults.
- Parameters
-
params | [out] Initialized parameters |
◆ ICSS_EMAC_open()
API to initialize and configure ICSS in MAC/Switch Mode.
- Parameters
-
- Returns
- ICSS_EMAC_Handle in case of success, NULL otherwise
◆ ICSS_EMAC_close()
API to stop MAC/Switch Mode.
- Parameters
-
[in] | icssEmacHandle | Handle to ICSS_EMAC instance |
◆ ICSS_EMAC_ioctl()
int32_t ICSS_EMAC_ioctl |
( |
ICSS_EMAC_Handle |
icssEmacHandle, |
|
|
uint32_t |
ioctlCommand, |
|
|
uint8_t |
portNo, |
|
|
void * |
ioctlParams |
|
) |
| |
IOCTL Function for ICSS EMAC.
This Function can be used to configure various ICSS EMAC Functionalities.
The Supported features are:
(1)Port Enable/Disable (2)StormControl
(3)Learning configuration (4)Statistics module
(5)Multicast filterring (5)VLAN filtering
- Parameters
-
- Returns
- SystemP_SUCCESS in case of success, SystemP_FAILURE otherwise
◆ ICSS_EMAC_rxPktGet()
Retrieves a frame from a host queue and copies it in the allocated stack buffer.
- Parameters
-
[in] | rxArg | Pointer to ICSS_EMAC_RxArgument structure |
[in] | userArg | Custom Rx packet callback packet options only required for custom RxPacket implementations, default to NULL when calling ICSS_EMAC_RxPktGet which is default Rx Packet API |
- Returns
- Length of the frame received in number of bytes or SystemP_FAILURE on failure
◆ ICSS_EMAC_rxPktInfo()
int32_t ICSS_EMAC_rxPktInfo |
( |
ICSS_EMAC_Handle |
icssEmacHandle, |
|
|
int32_t * |
portNumber, |
|
|
int32_t * |
queueNumber |
|
) |
| |
API to retrieve the information about the received frame which is then used to dequeue the frame from the host queues.
- Parameters
-
[in] | icssEmacHandle | Handle to ICSS_EMAC instance |
[out] | portNumber | Return pointer of port number where frame was received |
[out] | queueNumber | Return pointer of host queue where the received frame is queued |
- Returns
- Length of packet or SystemP_FAILURE if no packet found
◆ ICSS_EMAC_txPacket()
API to queue a frame which has to be transmitted on the specified port queue.
- Parameters
-
[in] | txArg | Pointer to ICSS_EMAC_TxArgument |
[in] | userArg | Custom Tx packet callback packet options only required for custom TxPacket implementations, default to NULL when calling ICSS_EMAC_TxPacket which is default Tx Packet API |
- Returns
- SystemP_SUCCESS in case of success, SystemP_FAILURE otherwise