MCUSW
Ethernet Driver API

Introduction

The Ethernet Driver provides low-level access to the two-port Gigabit Ethernet Switch (MCU_CPSW0) hardware in the Jacinto 7 family. The first port (Port 0) is called host port and has a CPPI interface that interconnects the CPSW peripheral with the rest of the SoC. The second port (Port 1) is a MAC port which can be configured in RGMII or RMII mode.

The Ethernet Driver implements the standardized interface described in the AUTOSAR Release 4.2.1 Specification of the Ethernet Driver (AUTOSAR_SWS_EthDriver, Document ID 430).

The Ethernet Driver is part of the Communication Stack in the AUTOSAR Basic Software (BSW).

See also
Eth Configuration
Eth Driver Interrupt Handlers

Sub Modules

 Eth Configuration
 
 Eth Driver Interrupt Handlers
 

Functions

void Eth_Init (const Eth_ConfigType *CfgPtr)
 This function initializes the driver. More...
 
Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode)
 This function enables / disables the indexed controller. More...
 
Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType *CtrlModePtr)
 This function obtains the state of the indexed controller. More...
 
void Eth_GetPhysAddr (uint8 CtrlIdx, uint8 *PhysAddrPtr)
 This function obtains the physical source address used by the indexed controller. More...
 
void Eth_SetPhysAddr (uint8 CtrlIdx, const uint8 *PhysAddrPtr)
 This function sets the physical source address used by the indexed controller. More...
 
Std_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, uint8 *PhysAddrPtr, Eth_FilterActionType Action)
 This function updates the physical source address to / from the indexed controller filter. More...
 
Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal)
 This function configures a transceiver register or triggers a function offered by the receiver Service. More...
 
Std_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 *RegValPtr)
 This function reads a transceiver register. More...
 
Std_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType *CounterPtr)
 This function reads a list with counter values of the corresponding controller. More...
 
Std_ReturnType Eth_GetRxStats (uint8 CtrlIdx, Eth_RxStatsType *RxStats)
 This function reads a list with RX statistics values of the corresponding controller. More...
 
Std_ReturnType Eth_GetTxStats (uint8 CtrlIdx, Eth_TxStatsType *TxStats)
 This function reads a list with TX statistics values of the corresponding controller. More...
 
Std_ReturnType Eth_GetTxErrorCounterValues (uint8 CtrlIdx, Eth_TxErrorCounterValuesType *TxErrorCounterValues)
 This function reads a list of values to read statistic error counter values for transmission for corresponding controller. More...
 
Std_ReturnType Eth_GetCurrentTime (uint8 CtrlIdx, Eth_TimeStampQualType *timeQualPtr, Eth_TimeStampType *timeStampPtr)
 This function returns a time value out of the HW registers. More...
 
void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, uint8 BufIdx)
 This function activates egress time stamping on a dedicated message object. More...
 
void Eth_GetEgressTimeStamp (uint8 CtrlIdx, uint8 BufIdx, Eth_TimeStampQualType *timeQualPtr, Eth_TimeStampType *timeStampPtr)
 This function reads back the egress time stamp on a dedicated message object. More...
 
void Eth_GetIngressTimeStamp (uint8 CtrlIdx, Eth_DataType *DataPtr, Eth_TimeStampQualType *timeQualPtr, Eth_TimeStampType *timeStampPtr)
 This function reads back the ingress time stamp on a dedicated message object. More...
 
void Eth_SetCorrectionTime (uint8 CtrlIdx, Eth_TimeIntDiffType *timeOffsetPtr, Eth_RateRatioType *rateRatioPtr)
 This function allows the Time Slave to adjust the local ETH Reference clock in HW. More...
 
Std_ReturnType Eth_SetGlobalTime (uint8 CtrlIdx, Eth_TimeStampType *timeStampPtr)
 This function allows the Time Master to adjust the global ETH Reference clock in HW. More...
 
BufReq_ReturnType Eth_ProvideTxBuffer (uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType *BufIdxPtr, uint8 **BufPtr, uint16 *LenBytePtr)
 This function provides access to a transmit buffer of the specified controller. More...
 
Std_ReturnType Eth_Transmit (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, boolean TxConfirmation, uint16 LenByte, uint8 *PhysAddrPtr)
 This function triggers transmission of a previously filled transmit buffer. More...
 
Std_ReturnType Eth_TransmitNoCpy (uint8 CtrlIdx, uint8 *BufPtr, Eth_FrameType FrameType, uint16 LenByte, uint8 *PhysAddrPtr)
 This function triggers transmission of a packet without buffer copy. More...
 
void Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType *RxStatusPtr)
 This function triggers frame reception. More...
 
void Eth_TxConfirmation (uint8 CtrlIdx)
 This function triggers frame transmission confirmation. More...
 
void Eth_GetVersionInfo (Std_VersionInfoType *VersionInfo)
 Function returns the version information of this module. More...
 
void Eth_MainFunction (void)
 The function checks for controller errors and lost frames. Used for polling state changes. Calls EthIf_CtrlModeIndication when the controller mode changed. More...
 
Std_ReturnType Eth_VirtMacRpcInit (const Eth_ConfigType *CfgPtr)
 This function initializes Eth Virtual MAC driver's Remote Procedure Call. More...
 
Std_ReturnType Eth_DispatchVirtmacInit (uint8 CtrlIdx)
 Dispatch virtual mac initialization request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacDeinit (uint8 CtrlIdx)
 Dispatch virtual mac deinit request to ethernet firmware. More...
 
Std_ReturnType Eth_NotifyVirtmacMsgReceived (uint8 CtrlIdx)
 Notify Ethernet driver that a RPC msg has been received from ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacSubscribeAllTraffic (uint8 CtrlIdx)
 Dispatch virtual mac all traffic subscription request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacUnsubscribeAllTraffic (uint8 CtrlIdx)
 Dispatch virtual mac all traffic unsubscription request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacSubscribeDstMac (uint8 CtrlIdx, uint8 *macAddress)
 Dispatch virtual mac destination mac traffic subscription request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacUnsubscribeDstMac (uint8 CtrlIdx, uint8 *macAddress)
 Dispatch virtual mac destination traffic unsubscription request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacAssociateIPv4Macaddr (uint8 CtrlIdx, uint8 *ipv4Address, uint8 *macAddress)
 Dispatch virtual mac IPV4 address:destination mac association request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacDisassociateIPv4Macaddr (uint8 CtrlIdx, uint8 *ipv4Address)
 Dispatch virtual mac IPV4 address:destination mac disassociation request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacAddUnicastAddr (uint8 CtrlIdx, uint8 *macAddress, Eth_PortType port, uint32 vlanId)
 Dispatch virtual mac addition of given unicast address to switch address resolution table request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacAddMcastAddr (uint8 CtrlIdx, uint8 *macAddress, uint32 numLsbToIgnore, uint32 vlanId, Eth_PortListType *portList)
 Dispatch virtual mac addition of given multicast address to switch address resolution table request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacDelAddr (uint8 CtrlIdx, uint8 *macAddress, uint32 vlanId)
 Dispatch virtual mac removal of given mac address from switch address resolution table request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacAddVlan (uint8 CtrlIdx, uint32 vlanId, Eth_PortListType *portList)
 Dispatch virtual mac addition of given vlan id to switch address resolution table request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacDelVlan (uint8 CtrlIdx, uint32 vlanId)
 Dispatch virtual mac removal of given vlanid from switch address resolution table request to ethernet firmware. More...
 
Std_ReturnType Eth_SendCustomNotify (uint8 CtrlIdx, void *notifyInfo, uint32 notifyLen)
 Send a custom notification to the ethernet firmware with given notify info and notify len. More...
 
Std_ReturnType Eth_RetrieveRxReadyQ (uint8 CtrlIdx, Eth_PktQ *retrievePktQ)
 This function retrieves a queue of received Ethernet frames. More...
 
Std_ReturnType Eth_SubmitRxFreeQ (uint8 CtrlIdx, Eth_PktQ *submitPktQ)
 This function submits a queue of free Ethernet frames for future reception. More...
 
Std_ReturnType Eth_SubmitTxReadyQ (uint8 CtrlIdx, Eth_PktQ *submitPktQ)
 This function submits a queue of Ethernet frames for transmission. More...
 
Std_ReturnType Eth_RetrieveTxDoneQ (uint8 CtrlIdx, Eth_PktQ *retrievePktQ)
 This function retrieves a queue of Ethernet frames that have already being used for transmission. More...
 

Eth Driver Module SW Version Info

Definitions for the Eth Driver version used for compatibility checks

#define ETH_SW_MAJOR_VERSION   (1U)
 Driver Implementation Major Version. More...
 
#define ETH_SW_MINOR_VERSION   (5U)
 Driver Implementation Minor Version. More...
 
#define ETH_SW_PATCH_VERSION   (0U)
 Driver Implementation Patch Version. More...
 

Eth Driver Module AUTOSAR Version Info

Definitions for the Etj Driver AUTOSAR version used for compatibility checks

#define ETH_AR_RELEASE_MAJOR_VERSION   (4U)
 AUTOSAR Major version specification implemented by Eth Driver. More...
 
#define ETH_AR_RELEASE_MINOR_VERSION   (3U)
 AUTOSAR Minor version specification implemented by Eth Driver. More...
 
#define ETH_AR_RELEASE_REVISION_VERSION   (1U)
 AUTOSAR Patch version specification implemented by Eth Driver. More...
 

Eth Driver ID Info

#define ETH_VENDOR_ID   ((uint16) 44U)
 Texas Instruments Vendor ID. More...
 
#define ETH_MODULE_ID   ((uint16) 88U)
 Eth Driver Module ID. More...
 
#define ETH_INSTANCE_ID   ((uint8) 0U)
 Eth Driver Instance ID. More...
 

Eth Controller names

Symbolic names for the EthControllerId.

#define ETH_CONTROLLER_ID_0   (0U)
 Eth controller ID 0. More...
 

Eth Error Codes

Error codes returned by Eth functions

#define ETH_E_INV_CTRL_IDX   ((uint8) 0x01U)
 Invalid controller index. More...
 
#define ETH_E_UNINIT   ((uint8) 0x02U)
 Eth module was not initialized. More...
 
#define ETH_E_PARAM_POINTER   ((uint8) 0x03U)
 Invalid pointer in parameter list. More...
 
#define ETH_E_INV_PARAM   ((uint8) 0x04U)
 Invalid parameter. More...
 
#define ETH_E_INV_MODE   ((uint8) 0x05U)
 Invalid mode. More...
 
#define ETH_E_VIRTMAC_APIMISMATCH   ((uint8) 0x07U)
 Mismatch in API version between Eth Driver and ethernet firmware. More...
 
#define ETH_E_VIRTMAC_RPCCMDFAILED   ((uint8) 0x08U)
 Virtual MAC RPC command failed. More...
 
#define ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY   ((uint8) 0x09U)
 Ethernet MCAL RPC client received unhandled notify from ethernet firmware server. More...
 
#define ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD   ((uint8) 0x0AU)
 Rpc Command sent by client not supported by server. More...
 
#define ETH_E_BUSY   ((uint8) 0x0BU)
 Device or resource is busy. More...
 

Macro Definition Documentation

◆ ETH_SW_MAJOR_VERSION

#define ETH_SW_MAJOR_VERSION   (1U)

Driver Implementation Major Version.

◆ ETH_SW_MINOR_VERSION

#define ETH_SW_MINOR_VERSION   (5U)

Driver Implementation Minor Version.

◆ ETH_SW_PATCH_VERSION

#define ETH_SW_PATCH_VERSION   (0U)

Driver Implementation Patch Version.

◆ ETH_AR_RELEASE_MAJOR_VERSION

#define ETH_AR_RELEASE_MAJOR_VERSION   (4U)

AUTOSAR Major version specification implemented by Eth Driver.

◆ ETH_AR_RELEASE_MINOR_VERSION

#define ETH_AR_RELEASE_MINOR_VERSION   (3U)

AUTOSAR Minor version specification implemented by Eth Driver.

◆ ETH_AR_RELEASE_REVISION_VERSION

#define ETH_AR_RELEASE_REVISION_VERSION   (1U)

AUTOSAR Patch version specification implemented by Eth Driver.

◆ ETH_VENDOR_ID

#define ETH_VENDOR_ID   ((uint16) 44U)

Texas Instruments Vendor ID.

◆ ETH_MODULE_ID

#define ETH_MODULE_ID   ((uint16) 88U)

Eth Driver Module ID.

◆ ETH_INSTANCE_ID

#define ETH_INSTANCE_ID   ((uint8) 0U)

Eth Driver Instance ID.

◆ ETH_CONTROLLER_ID_0

#define ETH_CONTROLLER_ID_0   (0U)

Eth controller ID 0.

◆ ETH_E_INV_CTRL_IDX

#define ETH_E_INV_CTRL_IDX   ((uint8) 0x01U)

Invalid controller index.

◆ ETH_E_UNINIT

#define ETH_E_UNINIT   ((uint8) 0x02U)

Eth module was not initialized.

◆ ETH_E_PARAM_POINTER

#define ETH_E_PARAM_POINTER   ((uint8) 0x03U)

Invalid pointer in parameter list.

◆ ETH_E_INV_PARAM

#define ETH_E_INV_PARAM   ((uint8) 0x04U)

Invalid parameter.

◆ ETH_E_INV_MODE

#define ETH_E_INV_MODE   ((uint8) 0x05U)

Invalid mode.

◆ ETH_E_VIRTMAC_APIMISMATCH

#define ETH_E_VIRTMAC_APIMISMATCH   ((uint8) 0x07U)

Mismatch in API version between Eth Driver and ethernet firmware.

◆ ETH_E_VIRTMAC_RPCCMDFAILED

#define ETH_E_VIRTMAC_RPCCMDFAILED   ((uint8) 0x08U)

Virtual MAC RPC command failed.

◆ ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY

#define ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY   ((uint8) 0x09U)

Ethernet MCAL RPC client received unhandled notify from ethernet firmware server.

◆ ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD

#define ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD   ((uint8) 0x0AU)

Rpc Command sent by client not supported by server.

◆ ETH_E_BUSY

#define ETH_E_BUSY   ((uint8) 0x0BU)

Device or resource is busy.

Function Documentation

◆ Eth_Init()

void Eth_Init ( const Eth_ConfigType *  CfgPtr)

This function initializes the driver.

*  Service name      : Eth_Init
*  Syntax            : void Eth_Init(
*                          const Eth_ConfigType* CfgPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x01
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CfPtr. Points to the implementation specific structure
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Initializes the Ethernet Driver.
*  

◆ Eth_SetControllerMode()

Std_ReturnType Eth_SetControllerMode ( uint8  CtrlIdx,
Eth_ModeType  CtrlMode 
)

This function enables / disables the indexed controller.

*  Service name      : Eth_SetControllerMode
*  Syntax            : Std_ReturnType Eth_SetControllerMode(
*                          uint8 CtrlIdx,
*                          Eth_ModeType CtrlMode
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x03
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      CtrlMode.
*                        ETH_MODE_DOWN: disable the controller
*                        ETH_MODE_ACTIVE: enable the controller
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: controller mode could not be changed
*  Description       : Enables / disables the indexed controller.
*  

◆ Eth_GetControllerMode()

Std_ReturnType Eth_GetControllerMode ( uint8  CtrlIdx,
Eth_ModeType *  CtrlModePtr 
)

This function obtains the state of the indexed controller.

*  Service name      : Eth_GetControllerMode
*  Syntax            : Std_ReturnType Eth_GetControllerMode(
*                          uint8 CtrlIdx,
*                          Eth_ModeType *CtrlModePtr
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x04
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): CtrlModePtr
*                        ETH_MODE_DOWN: the controller is disabled
*                        ETH_MODE_ACTIVE: the controller is enabled
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: controller mode could not be obtained
*  Description       : Obtains the state of the indexed controller.
*  

◆ Eth_GetPhysAddr()

void Eth_GetPhysAddr ( uint8  CtrlIdx,
uint8 *  PhysAddrPtr 
)

This function obtains the physical source address used by the indexed controller.

*  Service name      : Eth_GetPhysAddr
*  Syntax            : void Eth_GetPhysAddr(
*                          uint8 CtrlIdx,
*                          uint8 *PhysAddrPtr
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x08
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout):
*  Parameters (out)  : PhysAddrPtr. Physical source address (MAC address) in network
*                                   byte order
*  Return value      : None
*  Description       : Obtains the physical source address used by the indexed
*                      controller.
*  

◆ Eth_SetPhysAddr()

void Eth_SetPhysAddr ( uint8  CtrlIdx,
const uint8 *  PhysAddrPtr 
)

This function sets the physical source address used by the indexed controller.

*  Service name      : Eth_SetPhysAddr
*  Syntax            : void Eth_SetPhysAddr(
*                          uint8 CtrlIdx,
*                          const uint8* PhysAddrPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x13
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant for the same CtrlIdx, reentrant for different
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      PhysAddrPtr. Pointer to memory containing the physical source
*                                   address (MAC address) in network byte order
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Sets the physical source address used by the indexed
*                      controller.
*  

◆ Eth_UpdatePhysAddrFilter()

Std_ReturnType Eth_UpdatePhysAddrFilter ( uint8  CtrlIdx,
uint8 *  PhysAddrPtr,
Eth_FilterActionType  Action 
)

This function updates the physical source address to / from the indexed controller filter.

*  Service name      : Eth_UpdatePhysAddrFilter
*  Syntax            : Std_ReturnType Eth_UpdatePhysAddrFilter(
*                          uint8 CtrlIdx,
*                          uint8* PhysAddrPtr,
*                          Eth_FilterActionType Action
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x12
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant for the same CtrlIdx, reentrant for different
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      PhysAddrPtr. Pointer to memory containing the physical source
*                                   address (MAC address) in network byte order
*                      Action. Add or remove the address from the Ethernet controllers
*                              filter
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: filter was successfully changed
*                        E_NOT_OK: filter could not be changed
*  Description       : Updates the physical source address to/from the indexed ontroller
*                      filter. If the Ethernet Controller is not capable to do the
*                      filtering, the software has to do this.
*  

◆ Eth_WriteMii()

Std_ReturnType Eth_WriteMii ( uint8  CtrlIdx,
uint8  TrcvIdx,
uint8  RegIdx,
uint16  RegVal 
)

This function configures a transceiver register or triggers a function offered by the receiver Service.

*  Service name      : Eth_WriteMii
*  Syntax            : Std_ReturnType Eth_WriteMii(
*                          uint8 CtrlIdx,
*                          uint8 TrcvIdx,
*                          uint8 RegIdx,
*                          uint16 RegVal
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x05
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      TrcvIdx. Index of the transceiver on the MII
*                      RegIdx.Index of the transceiver register on the MII
*                      RegVal. Value to be written into the indexed registerNone
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: Service accepted
*                        E_NOT_OK: Service denied
*                        ETH_E_NO_ACCESS: Ethernet transceiver access failure
*  Description       : Configures a transceiver register or triggers a function
*                      offered by the receiver.
*  

◆ Eth_ReadMii()

Std_ReturnType Eth_ReadMii ( uint8  CtrlIdx,
uint8  TrcvIdx,
uint8  RegIdx,
uint16 *  RegValPtr 
)

This function reads a transceiver register.

*  Service name      : Eth_ReadMii
*  Syntax            : Std_ReturnType Eth_ReadMii(
*                          uint8 CtrlIdx,
*                          uint8 TrcvIdx,
*                          uint8 RegIdx,
*                          uint16* RegValPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x06
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      TrcvIdx. Index of the transceiver on the MII
*                      RegIdx. Index of the transceiver register on the MII
*                      RegVal. Value to be written into the indexed register
*  Parameters (inout): None
*  Parameters (out)  : RegValPtr. Filled with the register content of the indexed
*                                 register
*  Return value      : Std_ReturnType
*                        E_OK: Service accepted
*                        E_NOT_OK: Service denied
*                        ETH_E_NO_ACCESS: Ethernet transceiver access failure
*  Description       : Reads a transceiver register.
*  

◆ Eth_GetCounterValues()

Std_ReturnType Eth_GetCounterValues ( uint8  CtrlIdx,
Eth_CounterType *  CounterPtr 
)

This function reads a list with counter values of the corresponding controller.

*  Service name      : Eth_GetCounterValues
*  Syntax            : Std_ReturnType Eth_GetCounterValues(uint8 CtrlIdx,
*                                                          Eth_CounterType* CounterPtr);
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x14
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (out)  : CounterPtr. counter values according to IETF RFC 1757, RFC 1643 and
*                      RFC 2233. Refer to the \ref Eth_CounterType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       : Reads a list with drop counter values of the corresponding controller.
*                      The meaning of these values is described at Eth_CounterType
*  

◆ Eth_GetRxStats()

Std_ReturnType Eth_GetRxStats ( uint8  CtrlIdx,
Eth_RxStatsType *  RxStats 
)

This function reads a list with RX statistics values of the corresponding controller.

*  Service name      : Eth_GetRxStats
*  Syntax            : Std_ReturnType Eth_GetRxStats(
*                          uint8 CtrlIdx,
*                          Eth_RxStatsType* RxStats
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x15
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : RxStats. List of values according to IETF RFC 2819 (Remote Network
*                      Monitoring Management Information Base). Refer to the \ref Eth_RxStatsType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       :
*  

◆ Eth_GetTxStats()

Std_ReturnType Eth_GetTxStats ( uint8  CtrlIdx,
Eth_TxStatsType *  TxStats 
)

This function reads a list with TX statistics values of the corresponding controller.

*  Service name      : Eth_GetTxStats
*  Syntax            : Std_ReturnType Eth_GetTxStats(
*                          uint8 CtrlIdx,
*                          Eth_TxStatsType* TxStats
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x15
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : TxStats. List of values according to IETF RFC 2819 (Remote Network
*                      Monitoring Management Information Base). Refer to the \ref Eth_TxStatsType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       :
*  

◆ Eth_GetTxErrorCounterValues()

Std_ReturnType Eth_GetTxErrorCounterValues ( uint8  CtrlIdx,
Eth_TxErrorCounterValuesType *  TxErrorCounterValues 
)

This function reads a list of values to read statistic error counter values for transmission for corresponding controller.

*  Service name      : Eth_GetTxErrorCounterValues
*  Syntax            : Eth_GetTxErrorCounterValues(uint8 CtrlIdx,
*                            Eth_TxErrorCounterValuesType *TxErrorCounterValues)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x15
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : TxErrorCounterValues. List of values to read statistic error counter values
*                      for transmission. Refer to the \ref Eth_TxErrorCounterValuesType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       :
*  

◆ Eth_GetCurrentTime()

Std_ReturnType Eth_GetCurrentTime ( uint8  CtrlIdx,
Eth_TimeStampQualType *  timeQualPtr,
Eth_TimeStampType *  timeStampPtr 
)

This function returns a time value out of the HW registers.

*  Service name      : Eth_GetCurrentTime
*  Syntax            : Std_ReturnType Eth_GetCurrentTime(
*                          uint8 CtrlIdx,
*                          Eth_TimeStampQualType *timeQualPtr,
*                          Eth_TimeStampType *timeStampPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x16
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : timeQualPtr. Quality of HW time stamp, e.g. based on current
*                                   drift
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: failed
*  Description       : Returns a time value out of the HW registers according
*                      to the capability of the HW. Is the HW resolution is lower than
*                      the Eth_TimeStampType resolution resp. range, than an the
*                      remaining bits will be filled with 0.
*  

◆ Eth_EnableEgressTimeStamp()

void Eth_EnableEgressTimeStamp ( uint8  CtrlIdx,
uint8  BufIdx 
)

This function activates egress time stamping on a dedicated message object.

*  Service name      : Eth_EnableEgressTimeStamp
*  Syntax            : void Eth_EnableEgressTimeStamp(
*                          uint8 CtrlIdx,
*                          uint8 BufIdx
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x17
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufIdx. Index of the message buffer, where Application
*                              expects egress time stamping
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Activates egress time stamping on a dedicated message
*                      object.
*                      Some HW does store once the egress time stamp marker and
*                      some HW needs it always before transmission. There will be
*                      no disable functionality, due to the fact, that the message
*                      type is always "time stamped" by network design.
*  

◆ Eth_GetEgressTimeStamp()

void Eth_GetEgressTimeStamp ( uint8  CtrlIdx,
uint8  BufIdx,
Eth_TimeStampQualType *  timeQualPtr,
Eth_TimeStampType *  timeStampPtr 
)

This function reads back the egress time stamp on a dedicated message object.

*  Service name      : Eth_GetEgressTimeStamp
*  Syntax            : void Eth_GetEgressTimeStamp(
*                          uint8 CtrlIdx,
*                          uint8 BufIdx,
*                          Eth_TimeStampQualType* timeQualPtr,
*                          Eth_TimeStampType *timeStampPtr
*                          )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x18
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufIdx. Index of the message buffer, where Application
*                              expects egress time stamping
*  Parameters (inout): timeQualPtr. Quality of HW time stamp, e.g. based on current
*                                   drift
*                      timeStampPtr. Current time stamp
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Reads back the egress time stamp on a dedicated message
*                      object.
*                      It must be called within the TxConfirmation() function.
*  

◆ Eth_GetIngressTimeStamp()

void Eth_GetIngressTimeStamp ( uint8  CtrlIdx,
Eth_DataType *  DataPtr,
Eth_TimeStampQualType *  timeQualPtr,
Eth_TimeStampType *  timeStampPtr 
)

This function reads back the ingress time stamp on a dedicated message object.

*  Service name      : Eth_GetIngressTimeStamp
*  Syntax            : void Eth_GetIngressTimeStamp(
*                          uint8 CtrlIdx,
*                          Eth_DataType* DataPtr,
*                          Eth_TimeStampQualType* timeQualPtr,
*                          Eth_TimeStampType *timeStampPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x19
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      DataPtr. Pointer to the message buffer, where Application
*                               expects ingress time stamping
*  Parameters (inout): timeQualPtr. Quality of HW time stamp, e.g. based on current
*                                   drift
*                      timeStampPtr. Current time stamp
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Reads back the ingress time stamp on a dedicated message
*                      object.
*                      It must be called within the RxIndication() function.
*  

◆ Eth_SetCorrectionTime()

void Eth_SetCorrectionTime ( uint8  CtrlIdx,
Eth_TimeIntDiffType *  timeOffsetPtr,
Eth_RateRatioType *  rateRatioPtr 
)

This function allows the Time Slave to adjust the local ETH Reference clock in HW.

*  Service name      : Eth_SetCorrectionTime
*  Syntax            : void Eth_SetCorrectionTime(
*                          uint8 CtrlIdx,
*                          Eth_TimeIntDiffType* timeOffsetPtr,
*                          Eth_RateRatioType *rateRatioPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x1A
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): timeOffsetPtr. Offset between time stamp grandmaster and
*                                    time stamp by local clock:
*                        (OriginTimeStampSync[FUP] - IngressTimeStampSync) +
*                         Pdelay
*                      rateRatioPtr. Time elements to calculate and to modify the
*                                    ratio of the frequency of the grandmaster in
*                                    relation to the frequency of the Local Clock
*                                    with:
*                        ratio = OriginTimeStampDelta / IngressTimeStampDelta
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Allows the Time Slave to adjust the local ETH Reference
*                      clock in HW.
*  

◆ Eth_SetGlobalTime()

Std_ReturnType Eth_SetGlobalTime ( uint8  CtrlIdx,
Eth_TimeStampType *  timeStampPtr 
)

This function allows the Time Master to adjust the global ETH Reference clock in HW.

*  Service name      : Eth_SetGlobalTime
*  Syntax            : Std_ReturnType Eth_SetGlobalTime(
*                          uint8 CtrlIdx,
*                          Eth_TimeStampType* timeStampPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x1B
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      timeStampPtr. New time stamp
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: failed
*  Description       : Allows the Time Master to adjust the global ETH Reference
*                      clock in HW. We can use this method to set a global time base
*                      on ETH in general or to synchronize the global ETH time base
*                      with another time base, e.g. FlexRay.
*  

◆ Eth_ProvideTxBuffer()

BufReq_ReturnType Eth_ProvideTxBuffer ( uint8  CtrlIdx,
uint8  Priority,
Eth_BufIdxType *  BufIdxPtr,
uint8 **  BufPtr,
uint16 *  LenBytePtr 
)

This function provides access to a transmit buffer of the specified controller.

*  Service name      : Eth_ProvideTxBuffer
*  Syntax            : BufReq_ReturnType Eth_ProvideTxBuffer(
*                          uint8 CtrlIdx,
*                          uint8 Priority,
*                          uint8* BufIdxPtr,
*                          uint8** BufPtr,
*                          uint16* LenBytePtr
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x09
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : Priority. Frame priority for transmit buffer FIFO selection
*  Parameters (inout): LenBytePtr
*                        In: desired length in bytes, out: granted length in bytes
*  Parameters (out)  : BufIdxPtr. Index to the granted buffer resource. To be used
*                                 for subsequent requests
*                      BufPtr. Pointer to the granted buffer
*  Return value      : BufReq_ReturnType
*                        BUFREQ_OK: success
*                        BUFREQ_E_NOT_OK: development error detected
*                        BUFREQ_E_BUSY: all buffers in use
*                        BUFREQ_E_OVFL: requested buffer too large
*  Description       : Provides access to a transmit buffer of the specified
*                      controller.
*  

◆ Eth_Transmit()

Std_ReturnType Eth_Transmit ( uint8  CtrlIdx,
Eth_BufIdxType  BufIdx,
Eth_FrameType  FrameType,
boolean  TxConfirmation,
uint16  LenByte,
uint8 *  PhysAddrPtr 
)

This function triggers transmission of a previously filled transmit buffer.

*  Service name      : Eth_Transmit
*  Syntax            : Std_ReturnType Eth_Transmit(
*                          uint8 CtrlIdx,
*                          uint8 BufIdx,
*                          Eth_FrameType FrameType,
*                          boolean TxConfirmation,
*                          uint16 LenByte,
*                          uint8 *PhysAddrPtr)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0xA
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufIdx. Index of the buffer resource
*                      FrameType. Ethernet frame type
*                      TxConfirmation. Activates transmission confirmation
*                      LenByte. Data length in byte
*                      PhysAddrPtr. Physical target address (MAC address) in
*                                   network byte order
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*  Description       : Triggers transmission of a previously filled transmit
*                      buffer.
*  

◆ Eth_TransmitNoCpy()

Std_ReturnType Eth_TransmitNoCpy ( uint8  CtrlIdx,
uint8 *  BufPtr,
Eth_FrameType  FrameType,
uint16  LenByte,
uint8 *  PhysAddrPtr 
)

This function triggers transmission of a packet without buffer copy.

*  Service name      : Eth_TransmitNoCpy
*  Syntax            : Std_ReturnType Eth_TransmitNoCpy(
*                          uint8 CtrlIdx,
*                          uint8 *BufPtr,
*                          Eth_FrameType FrameType,
*                          uint16 LenByte,
*                          uint8 *PhysAddrPtr)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x2B
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufPtr. Pointer to the packet buffer
*                      FrameType. Ethernet frame type
*                      LenByte. Data length in byte
*                      PhysAddrPtr. Physical target address (MAC address) in
*                                   network byte order
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*                        ETH_E_BUSY: hardware is busy and can't take new buffer
*  Description       : Triggers transmission of a previously filled packet
*                      buffer without performing additional buffer copy.
*  

◆ Eth_Receive()

void Eth_Receive ( uint8  CtrlIdx,
uint8  FifoIdx,
Eth_RxStatusType *  RxStatusPtr 
)

This function triggers frame reception.

*  Service name      : Eth_Receive
*  Syntax            : void Eth_Receive(
*                          uint8 CtrlIdx,
*                          uint8 FifoIdx,
*                          Eth_RxStatusType* RxStatusPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0xB
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : FifoIdx. Specifies the related fifo
*  Parameters (inout): None
*  Parameters (out)  : RxStatusPtr. Indicates whether a frame has been received and
*                                   if so, whether more frames are available or
*                                   frames got lost
*  Return value      : None
*  Description       : Triggers frame reception.
*  

◆ Eth_TxConfirmation()

void Eth_TxConfirmation ( uint8  CtrlIdx)

This function triggers frame transmission confirmation.

*  Service name      : Eth_TxConfirmation
*  Syntax            : void Eth_TxConfirmation(
*                          uint8 CtrlIdx
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0xC
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Triggers frame transmission confirmation.
*  

◆ Eth_GetVersionInfo()

void Eth_GetVersionInfo ( Std_VersionInfoType *  VersionInfo)

Function returns the version information of this module.

*  Service name      : Eth_GetVersionInfo
*  Syntax            : void Eth_GetVersionInfo(
*                          Std_VersionInfoType* versioninfo
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0xD
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : None
*  Parameters (inout): None
*  Parameters (out)  : VersionInfoPtr. Pointer to where to store the version
*                      information of this module
*  Return value      : None
*  Description       : Returns the version information of this module.
*  

◆ Eth_MainFunction()

void Eth_MainFunction ( void  )

The function checks for controller errors and lost frames. Used for polling state changes. Calls EthIf_CtrlModeIndication when the controller mode changed.

*  Service name      : Eth_MainFunction
*  Syntax            : void Eth_MainFunction(
*                          void
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x0A
*  Description       : The function checks for controller errors and lost frames.
*                      Used for polling state changes. Calls EthIf_CtrlModeIndication
*                      when the controller mode changed.
*  

◆ Eth_VirtMacRpcInit()

Std_ReturnType Eth_VirtMacRpcInit ( const Eth_ConfigType *  CfgPtr)

This function initializes Eth Virtual MAC driver's Remote Procedure Call.

*  Service name      : Eth_VirtMacRpcInit
*  Syntax            : Std_ReturnType Eth_VirtMacRpcInit(Eth_ConfigType *CfgPtr)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x2BU
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CfgPtr. Pointer to virt mac config struct. Refer to /ref Eth_ConfigType
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function initializes the RPC configuration required to invoke remote procedure
*                       calls to ethernet firmware to enable data path setup to AUTOSAR Eth MCAL
*                       driver. On initialization of AUTOSAR MCAL driver in virtual mac mode, the driver
*                       announces autosar ethernet mcal driver RpMsg service to the ethernet
*                       firmware core. The ethernet firmware server service will block  waiting for
*                       the announcment from MCAL driver and then attach to the Ethernet MCAL driver
*                       by sending it a EthFwInfo msg
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacInit()

Std_ReturnType Eth_DispatchVirtmacInit ( uint8  CtrlIdx)

Dispatch virtual mac initialization request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacInit
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacInit(CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x1CU
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to allocate data path resources.
*                       The allocated Tx, Rx DMA channels are then setup in the
*                       Eth_Init() API. The function only send the
*                       RPC msg to ethernet firmware core. Completion of RPC msg
*                       processing is indicated by invokcation of
*                       rpcCmdComplete part of Eth_ConfigType sturcture.
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacDeinit()

Std_ReturnType Eth_DispatchVirtmacDeinit ( uint8  CtrlIdx)

Dispatch virtual mac deinit request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacDeinit
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacDeinit(CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x1DU
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to free data path resources.
*                       This function dispatches RPC msg to ethernet firmware core.
*                       Completion of RPC msg processing is indicated by invokcation
*                       of rpcCmdComplete part of Eth_ConfigType sturcture.
*                       Once complete the data path to Ethernet virtual MAC
*                       has been torn down and driver can no loner send or receive packets
*  

◆ Eth_NotifyVirtmacMsgReceived()

Std_ReturnType Eth_NotifyVirtmacMsgReceived ( uint8  CtrlIdx)

Notify Ethernet driver that a RPC msg has been received from ethernet firmware.

*  Service name      : Eth_NotifyVirtmacMsgReceived
*  Syntax            : Std_ReturnType Eth_NotifyVirtmacMsgReceived(CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x1EU
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  Invocation of this function will cause the Ethernet
*                       MCAL driver to process any queued messages received
*                       from ethernet firmware. Depending on type of msg received
*                       ethernet firmware will invoke rpcCmdComplete/fwRegisteredCb
*                       application callbacks. This function is typically
*                       called from the Cdd_IpcNewMessageNotify if the channel
*                       id matches the Ethernet MCAL IPC channel id
*                       (ethfwRpcComChId member of Eth_ConfigType structure)
*                       Application can also trigger recv msg processing by
*                       setting pollRecvMsgInEthMain in Eth_ConfigType to TRUE
*                       Invoking Eth_MainFunction with this config set will
*                       trigger recv msg processing. In triggering recv msg
*                       processing from Eth_MainFunction, this API should be
*                       disabled
*
*  

◆ Eth_DispatchVirtmacSubscribeAllTraffic()

Std_ReturnType Eth_DispatchVirtmacSubscribeAllTraffic ( uint8  CtrlIdx)

Dispatch virtual mac all traffic subscription request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacSubscribeAllTraffic
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacSubscribeAllTraffic(CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x1FU
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to subscribe to all default flow traffic
*                       received on host port.The default flow contains all
*                       traffic that is not explicitly categorized into a specific
*                       flow using a classifier entry in the switch .
*                       Note that only one core can subscribe to default flow
*                       traffic in a system and this is by default the ethernet
*                       firmware core. This API requires a compatible ethernet
*                       firmware that _does_ _not_ subscribe to default flow
*                       and allows Eth Driver to subscribe to default flow
*                       The function only send the RPC msg to ethernet firmware core.
*                       Completion of RPC msg processing is indicated by invokcation of
*                       rpcCmdComplete part of Eth_ConfigType sturcture.
*                       A failure status indicates ethernet firmware does not allow
*                       AUTOSAR Eth Driver to subscribe to default flow
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeAllTraffic()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacUnsubscribeAllTraffic()

Std_ReturnType Eth_DispatchVirtmacUnsubscribeAllTraffic ( uint8  CtrlIdx)

Dispatch virtual mac all traffic unsubscription request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacUnsubscribeAllTraffic
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacUnsubscribeAllTraffic(CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x20U
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to unsubscribe to all default flow traffic
*                       received on host port.The driver should have subscribed
*                       to all default flow traffic previously by invoking
*                       Eth_DispatchVirtmacSubscribeAllTraffic().
*                       On unsubscribing to default flow all traffic with
*                       default flow will be dropped.
*                       The function only send the RPC msg to ethernet firmware core.
*                       Completion of RPC msg processing is indicated by invokcation of
*                       rpcCmdComplete part of Eth_ConfigType sturcture.
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeAllTraffic()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       9. Packet processing using Eth_Receive/Eth_Trasmit
*                       10. Eth_DispatchVirtmacUnsubscribeAllTraffic
*                       11. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*
*  

◆ Eth_DispatchVirtmacSubscribeDstMac()

Std_ReturnType Eth_DispatchVirtmacSubscribeDstMac ( uint8  CtrlIdx,
uint8 *  macAddress 
)

Dispatch virtual mac destination mac traffic subscription request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacSubscribeDstMac
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacSubscribeDstMac(CtrlIdx, macAddress)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x21
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      macAddress: Destination Mac address
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to subscribe to traffic with the given
*                       destination macAddress to be routed to the rx flow
*                       of the Ethernet MCAL driver so that driver can receive
*                       the packets.The macAddres can be a unicast address
*                       allocated to the EthDriver (returned by Eth_GetPhysAddr())
*                       or a multicast address.
*                       The switch address resolution table should have an entry to
*                       route the destination mac address to the host port.
*                       For unicast address , the switch address resolution table
*                       can be updated using Eth_DispatchVirtmacAddUnicastAddr()
*                       For multicast address , the switch address resolution table
*                       can be updated using Eth_DispatchVirtmacAddMcastAddr()
*                       Note that broadcast address is usually subscribed to by
*                       ethernet firmware so that it can respond to ARP requests.
*                       If ARP response handling by ethernet firmware is required,
*                       Eth driver should not be subscribed to broadcast address.
*                       The function only send the RPC msg to ethernet firmware core.
*                       Completion of RPC msg processing is indicated by invokcation of
*                       rpcCmdComplete part of Eth_ConfigType sturcture.
*                       A failure status indicates ethernet firmware does not allow
*                       AUTOSAR Eth Driver to subscribe to default flow
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacUnsubscribeDstMac()

Std_ReturnType Eth_DispatchVirtmacUnsubscribeDstMac ( uint8  CtrlIdx,
uint8 *  macAddress 
)

Dispatch virtual mac destination traffic unsubscription request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacUnsubscribeDstMac
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacUnsubscribeDstMac(CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x22
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*                      macAddress: Destination Mac address
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to unsubscribe the specified destination
*                       mac address flow traffic received on host port.
*                       The driver should have subscribed to the destination mac
*                       address previously by invoking
*                       Eth_DispatchVirtmacSubscribeDstMac().
*                       On unsubscribing to destination mac flow , traffic with
*                       given destination mac address flow will be directed to
*                       default flow.
*                       The function only send the RPC msg to ethernet firmware core.
*                       Completion of RPC msg processing is indicated by invokcation of
*                       rpcCmdComplete part of Eth_ConfigType sturcture.
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       9. Packet processing using Eth_Receive/Eth_Trasmit
*                       10. Eth_DispatchVirtmacUnsubscribeDstMac()
*                       11. Wait for rpcCmdComplete() callback with status E_OK
*                       12. Eth_SetControllerMode(ETH_MODE_DOWN)
*                       Note that all subscribed MAC address must be unsubscribed
*                       before Eth_SetControllerMode(ETH_MODE_DOWN) is invoked
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacAssociateIPv4Macaddr()

Std_ReturnType Eth_DispatchVirtmacAssociateIPv4Macaddr ( uint8  CtrlIdx,
uint8 *  ipv4Address,
uint8 *  macAddress 
)

Dispatch virtual mac IPV4 address:destination mac association request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacAssociateIPv4Macaddr
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacAssociateIPv4Macaddr(CtrlIdx, ipv4Address, macAddress)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x23
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      ipv4Address: IPv4 address
*                      macAddress: Destination Mac address
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to associate the given unicast macaddress
*                       with the given IP address.
*                       The ethernet firmware maintains the ARP database for
*                       the ethernet driver and ethfw will respond to any ARP request.
*                       To correctly respond to ARP queries for IP address assigned to
*                       the AUTOSAR network stack , the AUTOSAR stack must invoke
*                       this API so that the ARP database maintained by ethernet
*                       firmware is updated.The macAddres must be a unicast address
*                       allocated to the EthDriver (returned by Eth_GetPhysAddr())
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       9. Send out DHCP request to acquire IP address for the
*                          AUTOSAR network stack
*                       10. On getting DHCP response with IP address, invoke
*                           Eth_DispatchVirtmacAssociateIPv4Macaddr
*                       11. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacDisassociateIPv4Macaddr()

Std_ReturnType Eth_DispatchVirtmacDisassociateIPv4Macaddr ( uint8  CtrlIdx,
uint8 *  ipv4Address 
)

Dispatch virtual mac IPV4 address:destination mac disassociation request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacDisassociateIPv4Macaddr
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacDisassociateIPv4Macaddr(CtrlIdx, ipv4Address)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x24
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      ipv4Address: IPv4 address
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to remove the given IP address from the
*                       ARP database maintained by ethernet firmware.
*                       On deletion the ethfw will no longer respond to any ARP
*                       queries for the given IP address.
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       9. Send out DHCP request to acquire IP address for the
*                          AUTOSAR network stack
*                       10. On getting DHCP response with IP address, invoke
*                           Eth_DispatchVirtmacAssociateIPv4Macaddr
*                       11. Wait for rpcCmdComplete() callback with status E_OK
*                       12. Network Packet processing
*                       13. Eth_DispatchVirtmacDisassociateIPv4Macaddr
*                       14. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacAddUnicastAddr()

Std_ReturnType Eth_DispatchVirtmacAddUnicastAddr ( uint8  CtrlIdx,
uint8 *  macAddress,
Eth_PortType  port,
uint32  vlanId 
)

Dispatch virtual mac addition of given unicast address to switch address resolution table request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacAddUnicastAddr
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacAddUnicastAddr(CtrlIdx, macAddress, port, vlanId)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x25
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      macAddress: Mac address to be added to the switch address resolution table
*                      port: Port to which macAddress should be routed.
*                      vlanId: Vlan Id associated with the mac Address. If vlan id is not needed, 0 should be passed
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to add the given unicast macaddress
*                       to the switch address resolution table with the given
*                       port and vlan id.
*                       These are static entries and not learned entries.
*                       On addition of entry switch would switch frames
*                       received with the given destination macAddress:vlan id
*                       combo to the given port.
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_DispatchVirtmacAddUnicastAddr()
*                       9. Wait for rpcCmdComplete() callback with status E_OK
*                       10. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacAddMcastAddr()

Std_ReturnType Eth_DispatchVirtmacAddMcastAddr ( uint8  CtrlIdx,
uint8 *  macAddress,
uint32  numLsbToIgnore,
uint32  vlanId,
Eth_PortListType *  portList 
)

Dispatch virtual mac addition of given multicast address to switch address resolution table request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacAddMcastAddr
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacAddMcastAddr(CtrlIdx, macAddress, numLsbToIgnore, vlanId, portList)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x26
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      macAddress: Mac address to be added to the switch address resolution table
*                      numLsbToIgnore: Number of least significant bits in the multicast address to ignore.
*                                      This allows a range of multicast address to be handled by a single entry
*                      vlanId: Vlan Id associated with the mac Address. If vlan id is not needed, 0 should be passed
*                      portList: List of ports in the switch added to membership of the given multicast address
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to add the given multicast macaddress
*                       to the switch address resolution table with the given
*                       portlist as members and vlan id.
*                       On addition of entry switch would switch frames
*                       received with the given destination multicast macAddress:
*                       vlan id  combo to all the ports in the port list.
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_DispatchVirtmacAddMcastAddr()
*                       9. Wait for rpcCmdComplete() callback with status E_OK
*                       10. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacDelAddr()

Std_ReturnType Eth_DispatchVirtmacDelAddr ( uint8  CtrlIdx,
uint8 *  macAddress,
uint32  vlanId 
)

Dispatch virtual mac removal of given mac address from switch address resolution table request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacDelAddr
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacDelAddr(uint8 CtrlIdx, uint8 *macAddress, uint32 vlanId)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x27
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      macAddress: Mac address to be deleted from the switch address resolution table
*                      vlanId: Vlan Id associated with the mac Address. If vlan id is not needed, 0 should be passed
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to remove the given multicast macaddress
*                       and vlan id from the switch address resolution table
*                       On removal of entry switch would switch frames
*                       received with the given destination macAddress:
*                       vlan id  combo by flooding to all the ports in vlan membership.
*                       Address should have been added previously using Eth_DispatchVirtmacAddMcastAddr()/
*                       Eth_DispatchVirtmacAddUnicastAddr()
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_DispatchVirtmacAddMcastAddr()/Eth_DispatchVirtmacAddUnicastAddr()
*                       9. Wait for rpcCmdComplete() callback with status E_OK
*                       10. Eth_DispatchVirtmacDelAddr()
*                       11. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_DispatchVirtmacAddVlan()

Std_ReturnType Eth_DispatchVirtmacAddVlan ( uint8  CtrlIdx,
uint32  vlanId,
Eth_PortListType *  portList 
)

Dispatch virtual mac addition of given vlan id to switch address resolution table request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacAddVlan
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacAddVlan(CtrlIdx, vlanId, portList)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x28
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      vlanId:  Vlan Id for which port membership is to be added to switch VLAN membership table
*                      portList: List of ports in the switch added to membership of the given vlan id
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to add the given vlan id
*                       to the switch address resolution table with the given
*                       portlist as members of the vlan.
*                       On addition of entry switch would switch frames
*                       with the given vlan only within the vlan membership
*                       specified by the port list. This applies to both
*                       unicast and multicast address
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_DispatchVirtmacAddVlan()
*                       9. Wait for rpcCmdComplete() callback with status E_OK
*                       10. Eth_SetControllerMode(ETH_MODE_ACTIVE)
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*                       Note: The API adds the given portList also as the
*                       unregisterMcastFloodMask and registeredMulticastFloodMask
*                       The VLAN entry in the switch in added as inner vlan entry
*                       Further the following are hardcoded for the VLAN entry
*                           forceUntaggedEgressMask  = 0
*                           noLearnMask              = 0
*                           vidIngressCheck          = FALSE
*                           limitIPNxtHdr            = FALSE
*                           disallowIPFrag           = FALSE
*                       Refer to CPSW documentation for details on these params
*  

◆ Eth_DispatchVirtmacDelVlan()

Std_ReturnType Eth_DispatchVirtmacDelVlan ( uint8  CtrlIdx,
uint32  vlanId 
)

Dispatch virtual mac removal of given vlanid from switch address resolution table request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacDelVlan
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacDelVlan(uint8 CtrlIdx, uint32 vlanId)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x29
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      vlanId: Vlan Id which is to be removed from switch VLAN membership table
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function dispatches RPC command to ethernet
*                       firmware core to remove the given vlan id
*                       from the switch vlan membership table
*                       On removal of vlan membership entry switch would treat any
*                       frame received with the given vlan as per unknownVlanMembership mask configured in
*                       switch.Vlan id should have been added previously using Eth_DispatchVirtmacAddVlan()
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_Init()
*                       6. Eth_DispatchVirtmacSubscribeDstMac()
*                       7. Wait for rpcCmdComplete() callback with status E_OK
*                       8. Eth_DispatchVirtmacAddVlan()
*                       9. Wait for rpcCmdComplete() callback with status E_OK
*                       10. Eth_DispatchVirtmacDelVlan()
*                       11. Wait for rpcCmdComplete() callback with status E_OK
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_SendCustomNotify()

Std_ReturnType Eth_SendCustomNotify ( uint8  CtrlIdx,
void *  notifyInfo,
uint32  notifyLen 
)

Send a custom notification to the ethernet firmware with given notify info and notify len.

*  Service name      : Eth_SendCustomNotify
*  Syntax            : Std_ReturnType Eth_SendCustomNotify(uint8 CtrlIdx, void *notifyInfo, uint32 notifyLen)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x28
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Driver
*                      notifyInfo: Notify info to be sent
*                      notifyLen: Notify length
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      :  Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*
*  Description       :  The function send a custom notify msg to the ethernet firmware.
*                       Notify msgs are msgs which do not require response from ethernet firmware.
*                       The notify info format should mstch the format expected by ethernet firmware application.
*                       The driver does not interpret the notify info.This API
*                       is typically used to send some debug info to the ethernet firmware like CPU load, request to dump switch statistics on UART console etc.
*                       If configured in virtual mac mode application should
*                       invoke this API as follows:
*                       1. Eth_VirtMacRpcInit()
*                       2. Wait for fwRegisteredCb() callback
*                       3. Eth_DispatchVirtmacInit
*                       4. Wait for rpcCmdComplete() callback with status E_OK
*                       5. Eth_SendCustomNotify()
*                       The callbacks fwRegisteredCb() and rpcCmdComplete() are
*                       populated by the application as part of the Eth_ConfigType
*                       structure
*  

◆ Eth_RetrieveRxReadyQ()

Std_ReturnType Eth_RetrieveRxReadyQ ( uint8  CtrlIdx,
Eth_PktQ *  retrievePktQ 
)

This function retrieves a queue of received Ethernet frames.

*  Service name      : Eth_RetrieveRxReadyQ
*  Syntax            : Std_ReturnType Eth_RetrieveRxReadyQ(
*                          uint8 CtrlIdx,
*                          Eth_PktQ *retrievePktQ)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x2C
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of
*                               the Ethernet Driver
*  Parameters (inout): retrievePktQ. Packet queue to hold the received packets
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*  Description       : Retrieves received Ethernet frames in a queue. The queue
*                      based approach allows retrieval of multiple frames at
*                      once, which isn't possible with single frame oriented
*                      Eth_Receive() function.
*  

◆ Eth_SubmitRxFreeQ()

Std_ReturnType Eth_SubmitRxFreeQ ( uint8  CtrlIdx,
Eth_PktQ *  submitPktQ 
)

This function submits a queue of free Ethernet frames for future reception.

*  Service name      : Eth_SubmitRxFreeQ
*  Syntax            : Std_ReturnType Eth_SubmitRxFreeQ(
*                          uint8 CtrlIdx,
*                          Eth_PktQ *submitPktQ)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x2D
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of
*                               the Ethernet Driver
*  Parameters (inout): submitPktQ. Packet queue that holds free packets
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*  Description       : Submits free Ethernet frames in a queue for future frame
*                      reception. This function should be called after the
*                      application has consumed the frames received via
*                      Eth_RetrieveRxReadyQ() and is ready to recycle them back
*                      to the driver.
*  

◆ Eth_SubmitTxReadyQ()

Std_ReturnType Eth_SubmitTxReadyQ ( uint8  CtrlIdx,
Eth_PktQ *  submitPktQ 
)

This function submits a queue of Ethernet frames for transmission.

*  Service name      : Eth_SubmitTxReadyQ
*  Syntax            : Std_ReturnType Eth_SubmitTxReadyQ(
*                          uint8 CtrlIdx,
*                          Eth_PktQ *submitPktQ)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x2E
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of
*                               the Ethernet Driver
*  Parameters (inout): submitPktQ. Packet queue that holds packets ready for
*                                  transmission
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*  Description       : Submits a queue of Ethernet frames to be transmitted.
*                      The queue based approach allows submission of multiple
*                      frames at once, which isn't possible with single frame
*                      oriented Eth_Transmit() function.
*  

◆ Eth_RetrieveTxDoneQ()

Std_ReturnType Eth_RetrieveTxDoneQ ( uint8  CtrlIdx,
Eth_PktQ *  retrievePktQ 
)

This function retrieves a queue of Ethernet frames that have already being used for transmission.

*  Service name      : Eth_RetrieveTxDoneQ
*  Syntax            : Std_ReturnType Eth_RetrieveTxDoneQ(
*                          uint8 CtrlIdx,
*                          Eth_PktQ *retrievePktQ)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x2F
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of
*                               the Ethernet Driver
*  Parameters (inout): retrievePktQ. Packet queue to hold packets that have
*                                    already been used for transmission
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*  Description       : Retrieves a queue of Ethernet frames that have been used
*                      for transmission and can be recycled by the application
*                      for future transmission. This function should be called
*                      to recycle packets which were previously submitted for
*                      transmission via Eth_SubmitTxReadyQ().
*