MCUSW
Ethernet Virtual Mac Driver API

Introduction

The Virtual Mac Ethernet Driver provides low-level access to the five-port or night-port Gigabit Ethernet Switch hardware in the Jacinto 7 family which integrate Ethernet Firmware functionality.

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

See also
Eth Configuration
Eth Driver Interrupt Handlers

Functions

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_DispatchVirtmacAddMcastAddr (uint8 CtrlIdx, uint8 *macAddress, uint32 vlanId)
 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)
 Dispatch virtual VLAN join request to ethernet firmware. More...
 
Std_ReturnType Eth_DispatchVirtmacDelVlan (uint8 CtrlIdx, uint32 vlanId)
 Dispatch virtual VLAN leave command to ethernet firmware. More...
 
void Eth_VirtMac_MainFunction (uint8 ctrlIdx)
 

Function Documentation

◆ 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_DispatchVirtmacSubscribeDstMac()
*                       For multicast address , the switch address resolution table
*                       can be updated using Eth_DispatchVirtmacSubscribeDstMac()
*                       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_DispatchVirtmacAddMcastAddr()

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

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: _Exclusive_ multicast address, or _shared_ multicast address
*                                  in devices with ALE multihost support
*                      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 multicast macaddress
*                       to the switch address resolution table with the given
*                       vlan id.
*                       Note that this API requires that either the address is an
*                       _exclusive_ multicast address not claimed by any other
*                       remote client, or if the address is a _shared_ multicast
*                       address that the device supports ALE multihost feature
*                       (ETHFW with VEPA support).  _Shared_ multicast address
*                       support in devices withotu ALE multihost feature are
*                       currently not supported as this requires shared memory
*                       packet transfer, which is not supported in MCAL.
*                       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: Multicast Mac address to be removed from filter
*                      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().
*                       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_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 
)

Dispatch virtual VLAN join request to ethernet firmware.

*  Service name      : Eth_DispatchVirtmacAddVlan
*  Syntax            : Std_ReturnType Eth_DispatchVirtmacAddVlan(CtrlIdx, vlanId)
*  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
*  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 join a VLAN.  The VLAN creation is
*                       owned by ethernet firmware which defines what
*                       Ethernet ports and virtual ports are members.  If
*                       the virtual client is not a member of the VLAN, then
*                       the request to join the VLAN will be rejected.
*                       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
*  

◆ Eth_DispatchVirtmacDelVlan()

Std_ReturnType Eth_DispatchVirtmacDelVlan ( uint8  CtrlIdx,
uint32  vlanId 
)

Dispatch virtual VLAN leave command 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 leave a VLAN previously joined
*                       through 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_VirtMac_MainFunction()

void Eth_VirtMac_MainFunction ( uint8  ctrlIdx)

The function checks for state related to EthFw(attach/error, or new message from EthFw) polling state changes.

*  Service name      : Eth_VirtMac_MainFunction
*  Syntax            : Std_ReturnType Eth_VirtMac_MainFunction(uint8 CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : None
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non-Reentrant
*  Parameters (in)   : CtrlIdx: Index of the controller within the context of the
*                                Ethernet Drivere
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*
*  Description       :  The function check the controller state(firmware attach state or 
*                       recovery state)
*