AM263Px MCU+ SDK: Enet Resource Management

| AM263Px MCU+ SDK 26.00.00 |

Data Structures | Enumerations | Macros
Enet Resource Management
APIs for Networking modules » APIs for Enet LLD

## Introduction

## Data Structures
struct | EnetRm_ResourceInfo
| Enet RM resource information. More...
struct | EnetRm_ResPrms
| Enet RM resource parameters. More...
struct | EnetRm_IoctlPermissionEntry
| Enet RM IOCTL permission entry. More...
struct | EnetRm_IoctlPermissionTable
| Enet RM IOCTL permission table. More...
struct | EnetRm_MacAddressPool
| Enet RM MAC address pool. More...
struct | EnetRm_AllocRxFlowInArgs
| Input args for ENET_RM_IOCTL_ALLOC_RX_FLOW command. More...
struct | EnetRm_AllocRxFlow
| Output args for ENET_RM_IOCTL_ALLOC_RX_FLOW command. More...
struct | EnetRm_AllocMacAddrOutArgs
| Input args for ENET_RM_IOCTL_ALLOC_MAC_ADDR command. More...
struct | EnetRm_FreeTxChInArgs
| Input args for ENET_RM_IOCTL_FREE_TX_CH_PEERID command. More...
struct | EnetRm_FreeRxFlowInArgs
| Input args for ENET_RM_IOCTL_FREE_RX_FLOW command. More...
struct | EnetRm_FreeMacAddrInArgs
| Input args for ENET_RM_IOCTL_FREE_MAC_ADDR command. More...
struct | EnetRm_ResCfg
| Resource manager configuration parameters. More...
struct | EnetRm_AllocHwPushOutArgs
| Output args for ENET_RM_IOCTL_ALLOC_HW_PUSH_INST command. More...
struct | EnetRm_FreeHwPushInArgs
| Input args for ENET_RM_IOCTL_FREE_HW_PUSH_INST command. More...

## Enumerations
enum | EnetRm_Ioctls { ENET_RM_IOCTL_ALLOC_MAC_ADDR = ENET_RM_PUBLIC_IOCTL(0U), ENET_RM_IOCTL_FREE_MAC_ADDR = ENET_RM_PUBLIC_IOCTL(1U), ENET_RM_IOCTL_ALLOC_RX_FLOW = ENET_RM_PUBLIC_IOCTL(2U), ENET_RM_IOCTL_FREE_RX_FLOW = ENET_RM_PUBLIC_IOCTL(3U), ENET_RM_IOCTL_ALLOC_TX_CH_PEERID = ENET_RM_PUBLIC_IOCTL(4U), ENET_RM_IOCTL_FREE_TX_CH_PEERID = ENET_RM_PUBLIC_IOCTL(5U), ENET_RM_IOCTL_ALLOC_HW_PUSH_INST = ENET_RM_PUBLIC_IOCTL(6U), ENET_RM_IOCTL_FREE_HW_PUSH_INST = ENET_RM_PUBLIC_IOCTL(7U) }
| Enet RM IOCTL commands. More...
enum | EnetRm_TxCh { ENET_RM_TX_CH_0 = 0U, ENET_RM_TX_CH_1, ENET_RM_TX_CH_2, ENET_RM_TX_CH_3, ENET_RM_TX_CH_4, ENET_RM_TX_CH_5, ENET_RM_TX_CH_6, ENET_RM_TX_CH_7, ENET_RM_TX_CH_LAST = ENET_RM_TX_CH_7, ENET_RM_TX_CH_ANY = 0xFF }
| RM tx channel. More...

## Macros
#define | ENET_RM_PUBLIC_IOCTL(x)
| Helper macro to create IOCTL commands for Enet RM module. More...
#define | ENET_RM_NUM_IOCTL_PERM_ENTRY_MAX (16U)
| Maximum number of entries for IOCTL permission. More...
#define | ENET_RM_NUM_MACADDR_MAX (10U)
| Maximum number of macaddress to be managed by RM. More...
#define | ENET_RM_NUM_RXCHAN_MAX (2U)
| Maximum number of RX channels (i.e. sets of flows). More...

## Resource Manager Error Codes
Error codes returned by RM functions.
#define | ENET_RM_TXCHNUM_INVALID (0xABCDABCDU)
| Enet RM invalid TX channel number. More...
#define | ENET_RM_RXFLOWIDX_INVALID (0xABCDABCDU)
| Enet RM invalid RX flow id. More...
#define | ENET_RM_INVALIDCORE (0x5562AEFEU)
| Enet RM invalid core. More...

## Macro Definition Documentation

## ◆ ENET_RM_PUBLIC_IOCTL

#define ENET_RM_PUBLIC_IOCTL | ( |  | x | ) |

Value:
(ENET_IOCTL_TYPE_PUBLIC | \
ENET_IOCTL_RM_BASE | \
ENET_IOCTL_PER_GENERIC | \
ENET_IOCTL_MIN(x))

Helper macro to create IOCTL commands for Enet RM module.

## ◆ ENET_RM_TXCHNUM_INVALID

#define ENET_RM_TXCHNUM_INVALID (0xABCDABCDU)

Enet RM invalid TX channel number.

## ◆ ENET_RM_RXFLOWIDX_INVALID

#define ENET_RM_RXFLOWIDX_INVALID (0xABCDABCDU)

Enet RM invalid RX flow id.

## ◆ ENET_RM_INVALIDCORE

#define ENET_RM_INVALIDCORE (0x5562AEFEU)

Enet RM invalid core.

## ◆ ENET_RM_NUM_IOCTL_PERM_ENTRY_MAX

#define ENET_RM_NUM_IOCTL_PERM_ENTRY_MAX (16U)

Maximum number of entries for IOCTL permission.

## ◆ ENET_RM_NUM_MACADDR_MAX

#define ENET_RM_NUM_MACADDR_MAX (10U)

Maximum number of macaddress to be managed by RM.

## ◆ ENET_RM_NUM_RXCHAN_MAX

#define ENET_RM_NUM_RXCHAN_MAX (2U)

Maximum number of RX channels (i.e. sets of flows).

This is needed only for ICSSG Switch where there are two RX channels (with 8 flows each) for the host port. For all other peripherals, there is a single RX channel and multiple flows.

## Enumeration Type Documentation

## ◆ EnetRm_Ioctls

enum EnetRm_Ioctls

Enet RM IOCTL commands.

Enumerator
ENET_RM_IOCTL_ALLOC_MAC_ADDR | Alloc MAC address. IOCTL parameters: inArgs: uint32_t coreKey outArgs: EnetRm_AllocMacAddrOutArgs
ENET_RM_IOCTL_FREE_MAC_ADDR | Free MAC address. IOCTL parameters: inArgs: EnetRm_FreeMacAddrInArgs outArgs: None
ENET_RM_IOCTL_ALLOC_RX_FLOW | Alloc RX flow. IOCTL parameters: inArgs: uint32_t coreKey outArgs: EnetRm_AllocRxFlow
ENET_RM_IOCTL_FREE_RX_FLOW | Free RX flow. IOCTL parameters: inArgs: EnetRm_FreeRxFlowInArgs outArgs: None
ENET_RM_IOCTL_ALLOC_TX_CH_PEERID | Alloc TX channel peer id. IOCTL parameters: inArgs: uint32_t coreKey outArgs: uint32_t txPSILThreadId
ENET_RM_IOCTL_FREE_TX_CH_PEERID | Free TX channel peer id. IOCTL parameters: inArgs: EnetRm_FreeTxChInArgs outArgs: None
ENET_RM_IOCTL_ALLOC_HW_PUSH_INST | Alloc HW Push instance. IOCTL parameters: inArgs: uint32_t coreKey outArgs: EnetRm_AllocHwPushOutArgs
ENET_RM_IOCTL_FREE_HW_PUSH_INST | Free HW Push instance. IOCTL parameters: inArgs: EnetRm_FreeHwPushInArgs outArgs: None

## ◆ EnetRm_TxCh

enum EnetRm_TxCh

RM tx channel.

This enum holds the number of tx channel.

Enumerator
ENET_RM_TX_CH_0 | Channel no 0
ENET_RM_TX_CH_1 | Channel no 1
ENET_RM_TX_CH_2 | Channel no 2
ENET_RM_TX_CH_3 | Channel no 3
ENET_RM_TX_CH_4 | Channel no 4
ENET_RM_TX_CH_5 | Channel no 5
ENET_RM_TX_CH_6 | Channel no 6
ENET_RM_TX_CH_7 | Channel no 7
ENET_RM_TX_CH_LAST | Max number of tx channels available
ENET_RM_TX_CH_ANY | Default Channel

ENET_IOCTL_TYPE_PUBLIC
@ ENET_IOCTL_TYPE_PUBLIC
Definition: enet_ioctl.h:216