Main Page Modules Alphabetical List Data Structures File List Data Fields Globals
IXP425 Ethernet Access (IxEthAcc) APIethAcc is a library that does provides access to the internal IXP425 10/100Bt Ethernet MACs.
More...
|
Data Structures |
struct | IxEthAccMacAddr |
| The IEEE 802.3 Ethernet MAC address structure. More...
|
struct | IxEthEthObjStats |
| This struct defines the statistics returned by this component. The component returns MIB2 EthObj variables which should are obtained from the hardware or maintained by this component. More...
|
Defines |
#define | IX_ETH_ACC_NUMBER_OF_PORTS |
| Defines related to the number of NPE's and mapping between PortId and NPE.
|
#define | IX_IEEE803_MAC_ADDRESS_SIZE |
| Defines the size of the MAC address NPE.
|
#define | IX_ETH_ACC_NUM_TX_PRIORITIES |
| The number of transmit priorities.
|
#define | IX_ETHACC_RX_MBUF_MIN_SIZE |
| This defines the recommanded minimum size of MBUF's submitted to the frame receive service.
|
#define | IXP425_ETH_ACC_MII_MAX_ADDR |
| This defines the highest MII address of any attached PHYs.
|
#define | ixEthAccMiiPhyScan(phyPresent) |
| : deprecated API entry point. This definition ensures backward compatibility
|
#define | ixEthAccMiiPhyConfig(phyAddr, speed100, fullDuplex, autonegotiate) |
| : deprecated API entry point. This definition ensures backward compatibility
|
#define | ixEthAccMiiPhyReset(phyAddr) |
| : deprecated API entry point. This definition ensures backward compatibility
|
#define | ixEthAccMiiLinkStatus(phyAddr, linkUp, speed100, fullDuplex, autoneg) |
| : deprecated API entry point. This definition ensures backward compatibility
|
#define | ixEthAccMiiShow(phyAddr) |
| : deprecated API entry point. This definition ensures backward compatibility
|
Typedefs |
typedef void(* | IxEthAccPortTxDoneCallback )(UINT32 callbackTag, IX_MBUF *buffer) |
| Function prototype for Ethernet Tx Buffer Done callback. Registered via ixEthAccTxBufferDoneCallbackRegister.
|
typedef void(* | IxEthAccPortRxCallback )(UINT32 callbackTag, IX_MBUF *buffer, IxEthAccPortId portId) |
| Function prototype for Ethernet Frame Rx callback. Registered via ixEthAccPortRxCallbackRegister.
|
Enumerations |
enum | IxEthAccStatus {
IX_ETH_ACC_SUCCESS,
IX_ETH_ACC_FAIL,
IX_ETH_ACC_INVALID_PORT,
IX_ETH_ACC_PORT_UNINITIALIZED,
IX_ETH_ACC_MAC_UNINITIALIZED,
IX_ETH_ACC_INVALID_ARG,
IX_ETH_TX_Q_FULL,
IX_ETH_ACC_NO_SUCH_ADDR
} |
| This is an enum to define the Ethernet Access status. More...
|
enum | IxEthAccPortId {
IX_ETH_PORT_1,
IX_ETH_PORT_2
} |
| This is an emum to define the IXP425 Mac Ethernet device. More...
|
enum | IxEthAccTxPriority {
IX_ETH_ACC_TX_PRIORITY_0,
IX_ETH_ACC_TX_PRIORITY_1,
IX_ETH_ACC_TX_PRIORITY_2,
IX_ETH_ACC_TX_PRIORITY_3,
IX_ETH_ACC_TX_PRIORITY_4,
IX_ETH_ACC_TX_PRIORITY_5,
IX_ETH_ACC_TX_PRIORITY_6,
IX_ETH_ACC_TX_PRIORITY_7,
IX_ETH_ACC_TX_DEFAULT_PRIORITY
} |
| enum to submit a frame with relative priority. More...
|
enum | IxEthAccDuplexMode {
IX_ETH_ACC_FULL_DUPLEX,
IX_ETH_ACC_HALF_DUPLEX
} |
| Definition to provision the duplex mode of the MAC. More...
|
enum | IxEthAccTxSchedulerDiscipline {
FIFO_NO_PRIORITY,
FIFO_PRIORITY
} |
| Definition for the port transmit scheduling discipline Definition for the port transmit scheduling discipline. More...
|
Functions |
IxEthAccStatus | ixEthAccInit (void) |
| Initialize the Ethernet Access Service.
|
void | ixEthAccUnload (void) |
| Unload the Ethernet Access Service.
|
IxEthAccStatus | ixEthAccPortInit (IxEthAccPortId portId) |
| Initialize an Ethernet MAC Port.
|
IxEthAccStatus | ixEthAccPortTxFrameSubmit (IxEthAccPortId portId, IX_MBUF *buffer, IxEthAccTxPriority priority) |
| This function shall be used to submit MBUFs buffers for transmission on a particular MAC device.
|
IxEthAccStatus | ixEthAccPortTxDoneCallbackRegister (IxEthAccPortId portId, IxEthAccPortTxDoneCallback txCallbackFn, UINT32 callbackTag) |
| This function registers a callback function to facilitate the return of transmit buffers to the user.
|
IxEthAccStatus | ixEthAccPortRxCallbackRegister (IxEthAccPortId portId, IxEthAccPortRxCallback rxCallbackFn, UINT32 callbackTag) |
| The function registered through this function shall be called once per received Ethernet frame.
|
IxEthAccStatus | ixEthAccPortRxFreeReplenish (IxEthAccPortId portId, IX_MBUF *buffer) |
| This function provides buffers for the Ethernet receive path.
|
IxEthAccStatus | ixEthAccPortEnable (IxEthAccPortId portId) |
| Enable a port.
|
IxEthAccStatus | ixEthAccPortDisable (IxEthAccPortId portId) |
| Disable a port.
|
IxEthAccStatus | ixEthAccPortEnabledQuery (IxEthAccPortId portId, BOOL *enabled) |
| Get the enabled state of a port.
|
IxEthAccStatus | ixEthAccPortPromiscuousModeClear (IxEthAccPortId portId) |
| Put the Ethernet MAC device in non-promiscuous mode.
|
IxEthAccStatus | ixEthAccPortPromiscuousModeSet (IxEthAccPortId portId) |
| Put the MAC device in promiscuous mode.
|
IxEthAccStatus | ixEthAccPortUnicastMacAddressSet (IxEthAccPortId portId, IxEthAccMacAddr *macAddr) |
| Configure unicast MAC address for a particular port.
|
IxEthAccStatus | ixEthAccPortUnicastMacAddressGet (IxEthAccPortId portId, IxEthAccMacAddr *macAddr) |
| Get unicast MAC address for a particular MAC port.
|
IxEthAccStatus | ixEthAccPortMulticastAddressJoin (IxEthAccPortId portId, IxEthAccMacAddr *macAddr) |
| ADD a multicast address to the MAC address table.
|
IxEthAccStatus | ixEthAccPortMulticastAddressJoinAll (IxEthAccPortId portId) |
| Filter all frames with multicast dest.
|
IxEthAccStatus | ixEthAccPortMulticastAddressLeave (IxEthAccPortId portId, IxEthAccMacAddr *macAddr) |
| Remove a multicast address from the MAC address table.
|
IxEthAccStatus | ixEthAccPortMulticastAddressLeaveAll (IxEthAccPortId portId) |
| Clear the MAC address table.
|
IxEthAccStatus | ixEthAccPortUnicastAddressShow (IxEthAccPortId portId) |
| Display unicast address has been configured using ixEthAccUnicastMacAddressSet.
|
void | ixEthAccPortMulticastAddressShow (IxEthAccPortId portId) |
| Display multicast address which have been configured using ixEthAccMulticastAddressJoin Display multicast address which have been configured using ixEthAccMulticastAddressJoin.
|
IxEthAccStatus | ixEthAccPortDuplexModeSet (IxEthAccPortId portId, IxEthAccDuplexMode mode) |
| Set the duplex mode for the MAC.
|
IxEthAccStatus | ixEthAccPortDuplexModeGet (IxEthAccPortId portId, IxEthAccDuplexMode *mode) |
| Get the duplex mode for the MAC.
|
IxEthAccStatus | ixEthAccPortTxFrameAppendPaddingEnable (IxEthAccPortId portId) |
| Enable the appending of padding bytes to runt frames submitted to this port.
|
IxEthAccStatus | ixEthAccPortTxFrameAppendPaddingDisable (IxEthAccPortId portId) |
| Disable the appending of padding bytes to the runt frames submitted to this port.
|
IxEthAccStatus | ixEthAccPortTxFrameAppendFCSEnable (IxEthAccPortId portId) |
| Enable the appending of Ethernet FCS to all frames submitted to this port.
|
IxEthAccStatus | ixEthAccPortTxFrameAppendFCSDisable (IxEthAccPortId portId) |
| Disable the appending of Ethernet FCS to all frames submitted to this port.
|
IxEthAccStatus | ixEthAccPortRxFrameAppendFCSEnable (IxEthAccPortId portId) |
| Forward frames with FCS included in the receive buffer to the user.
|
IxEthAccStatus | ixEthAccPortRxFrameAppendFCSDisable (IxEthAccPortId portId) |
| Disable the appending of Ethernet FCS to all frames submitted to this port.
|
IxEthAccStatus | ixEthAccTxSchedulingDisciplineSet (IxEthAccPortId portId, IxEthAccTxSchedulerDiscipline sched) |
| Set the port scheduling to one of IxEthAccTxSchedulerDiscipline Set the port scheduling to one of IxEthAccTxSchedulerDiscipline.
|
IxEthAccStatus | ixEthAccMibIIStatsGet (IxEthAccPortId portId,IxEthEthObjStats *retStats) |
| Return the statistics maintained for a port. Return the statistics maintained for a port.
|
IxEthAccStatus | ixEthAccMibIIStatsGetClear (IxEthAccPortId portId, IxEthEthObjStats *retStats) |
| Return and clear the statistics maintained for a port. Return and clear the statistics maintained for a port.
|
IxEthAccStatus | ixEthAccMibIIStatsClear (IxEthAccPortId portId) |
| Clear the statistics maintained for a port. Clear the statistics maintained for a port.
|
IxEthAccStatus | ixEthAccMacInit (IxEthAccPortId portId) |
| Initialize the ethernet MAC settings.
|
void | ixEthAccStatsShow (IxEthAccPortId portId) |
| Display a ports statistics on the standard io console using printf. Display a ports statistics on the standard io console using printf.
|
IxEthAccStatus | ixEthAccMiiReadRtn (UINT8 phyAddr, UINT8 phyReg, UINT16 *value) |
| Read a 16 bit value from a PHY.
|
IxEthAccStatus | ixEthAccMiiWriteRtn (UINT8 phyAddr, UINT8 phyReg, UINT16 value) |
| Write a 16 bit value to a PHY.
|
IxEthAccStatus | ixEthAccMiiStatsShow (UINT32 phyAddr) |
| Display detailed information on a specified PHY.
|
Detailed Description
ethAcc is a library that does provides access to the internal IXP425 10/100Bt Ethernet MACs.
Define Documentation
#define IX_ETH_ACC_NUM_TX_PRIORITIES
|
|
|
The number of transmit priorities.
Definition at line 133 of file IxEthAcc.h. |
#define IX_ETH_ACC_NUMBER_OF_PORTS
|
|
|
Defines related to the number of NPE's and mapping between PortId and NPE.
Definition at line 102 of file IxEthAcc.h. |
#define IX_ETHACC_RX_MBUF_MIN_SIZE
|
|
|
This defines the recommanded minimum size of MBUF's submitted to the frame receive service.
Definition at line 176 of file IxEthAcc.h. |
#define IX_IEEE803_MAC_ADDRESS_SIZE
|
|
|
Defines the size of the MAC address NPE.
Definition at line 112 of file IxEthAcc.h. |
#define ixEthAccMiiLinkStatus |
( |
phyAddr, |
|
|
linkUp, |
|
|
speed100, |
|
|
fullDuplex, |
|
|
autoneg |
|
) |
|
|
|
: deprecated API entry point. This definition ensures backward compatibility
See ixEthMiiLinkStatus
- Note:
- this feature is board specific
Definition at line 1710 of file IxEthAcc.h. |
#define ixEthAccMiiPhyConfig |
( |
phyAddr, |
|
|
speed100, |
|
|
fullDuplex, |
|
|
autonegotiate |
|
) |
|
|
|
: deprecated API entry point. This definition ensures backward compatibility
See ixEthMiiPhyConfig
- Note:
- this feature is board specific
Definition at line 1680 of file IxEthAcc.h. |
#define ixEthAccMiiPhyReset |
( |
phyAddr |
|
) |
|
|
|
: deprecated API entry point. This definition ensures backward compatibility
See ixEthMiiPhyReset
- Note:
- this feature is board specific
Definition at line 1695 of file IxEthAcc.h. |
#define ixEthAccMiiPhyScan |
( |
phyPresent |
|
) |
|
|
|
: deprecated API entry point. This definition ensures backward compatibility
See ixEthMiiPhyScan
- Note:
- this feature is board specific
Definition at line 1666 of file IxEthAcc.h. |
#define ixEthAccMiiShow |
( |
phyAddr |
|
) |
|
|
|
: deprecated API entry point. This definition ensures backward compatibility
See ixEthMiiPhyShow
- Note:
- this feature is board specific
Definition at line 1727 of file IxEthAcc.h. |
#define IXP425_ETH_ACC_MII_MAX_ADDR
|
|
|
This defines the highest MII address of any attached PHYs.
Max number for PHY address is 31, add on for range checking.
Definition at line 186 of file IxEthAcc.h. |
Typedef Documentation
typedef void(* IxEthAccPortRxCallback)(UINT32 callbackTag, IX_MBUF *buffer, IxEthAccPortId portId)
|
|
|
Function prototype for Ethernet Frame Rx callback. Registered via ixEthAccPortRxCallbackRegister.
It is the responsibility of the user function to free any MBUF's which it receives.
- Reentrant - yes , The user provided function should be reentrant.
- ISR Callable - yes , The user provided function must be callable from an ISR.
- Calling Context :
- This callback is called in the context of the queue manager dispatch loop ixQmgrgrDispatcherLoopRun within the IXP425 Queue Manager (IxQMgr) API component. The calling context may be from interrupt or high priority thread. The decision is system specific.
- Parameters:
-
callbackTag | - This tag is that provided when the callback was registered for a particular MAC via ixEthAccPortRxCallbackRegister. It allows the same callback to be used for multiple MACs. |
mbuf | - Pointer to the Rx mbuf header. Mbufs may be chained if the frame length is greater than the supplied mbuf length. |
portId | - ID of the port which match the destination MAC address for this frame (The value is greater or equal to IX_ETH_DB_NUMBER_OF_PORTS if the MAC address is not found in the copy of the database shared with the NPE) |
- Returns:
- void
- Note:
- Buffers may not be filled up to the length supplied in ixEthAccPortRxFreeReplenish(). The firmware fills them to the previous 64 bytes boundary. The user has to be aware that the length of the received mbufs may be smaller than the length of the supplied mbufs. The mbuf header contains the following modified field
- IX_MBUF_PKT_LEN is set in the header of the first mbuf and indicates the total frame size
- IX_MBUF_LEN is set each mbuf header and indicates the payload length
- IX_MBUF_NEXT_BUFFER_IN_PKT_PTR contains a pointer to the next mbuf, or NULL at the end of a chain.
- IX_MBUF_NEXT_PKT_IN_CHAIN_PTR is modified. Its value is reset to NULL
- IX_MBUF_FLAGS contains the bit 4 set for a broadcast packet and the bit 5 set for a multicast packet. Other bits are unmodified.
- Warning:
- Any portID returned via the received callback is invalid if greater than 5. If your system defines more than 6 ports (0 to 5) in IxEthDBPortDefs.h you MUST check this value before using it in conjunction with the Ethernet Learning/Filtering Database. This is a constraint of an NPE Rx descriptor format limitation, which can report valid ports only between 0 and 5, and will use 6 for "reserved" and "7" for "not found", while the XScale Ethernet Database can use these numbers for legitimate ports.
Definition at line 473 of file IxEthAcc.h. |
typedef void(* IxEthAccPortTxDoneCallback)( UINT32 callbackTag, IX_MBUF *buffer )
|
|
|
Function prototype for Ethernet Tx Buffer Done callback. Registered via ixEthAccTxBufferDoneCallbackRegister.
This function is called once the previously submitted buffer is no longer required by this service. It may be returned upon successful transmission of the frame or shutdown of port prior to submission. The calling of this registered function is not a guarantee of successful transmission of the buffer.
- Reentrant - yes , The user provided function should be reentrant.
- ISR Callable - yes , The user provided function must be callable from an ISR.
Calling Context : - This callback is called in the context of the queue manager dispatch loop ixQmgrgrDispatcherLoopRun within the IXP425 Queue Manager (IxQMgr) API component. The calling context may be from interrupt or high priority thread. The decision is system specific.
- Parameters:
-
callbackTag | - This tag is that provided when the callback was registered for a particular MAC via ixEthAccPortRxCallbackRegister. It allows the same callback to be used for multiple MACs. |
mbuf | - Pointer to the Tx mbuf descriptor. |
- Returns:
- void
- Note:
- The field IX_MBUF_NEXT_PKT_IN_CHAIN_PTR is modified by the access layer and reset to NULL.
Definition at line 368 of file IxEthAcc.h. |
Enumeration Type Documentation
|
Definition to provision the duplex mode of the MAC.
- Enumeration values:
-
IX_ETH_ACC_FULL_DUPLEX |
Full duplex operation of the MAC. |
IX_ETH_ACC_HALF_DUPLEX |
Half duplex operation of the MAC. |
Definition at line 162 of file IxEthAcc.h. |
|
This is an emum to define the IXP425 Mac Ethernet device.
- Enumeration values:
-
IX_ETH_PORT_1 |
Ethernet Port 1. |
IX_ETH_PORT_2 |
Ethernet port 2. |
Definition at line 88 of file IxEthAcc.h. |
|
This is an enum to define the Ethernet Access status.
- Enumeration values:
-
IX_ETH_ACC_SUCCESS |
return success |
IX_ETH_ACC_FAIL |
return fail |
IX_ETH_ACC_INVALID_PORT |
return invalid port |
IX_ETH_ACC_PORT_UNINITIALIZED |
return uninitialized |
IX_ETH_ACC_MAC_UNINITIALIZED |
return MAC uninitialized |
IX_ETH_ACC_INVALID_ARG |
return invalid arg |
IX_ETH_TX_Q_FULL |
return tx queue is full |
IX_ETH_ACC_NO_SUCH_ADDR |
return no such address |
Definition at line 71 of file IxEthAcc.h. |
|
enum to submit a frame with relative priority.
- Enumeration values:
-
IX_ETH_ACC_TX_PRIORITY_0 |
Lowest Priorty submission. |
IX_ETH_ACC_TX_PRIORITY_1 |
submission prority of 1 (0 is lowest) |
IX_ETH_ACC_TX_PRIORITY_2 |
submission prority of 2 (0 is lowest) |
IX_ETH_ACC_TX_PRIORITY_3 |
submission prority of 3 (0 is lowest) |
IX_ETH_ACC_TX_PRIORITY_4 |
submission prority of 4 (0 is lowest) |
IX_ETH_ACC_TX_PRIORITY_5 |
submission prority of 5 (0 is lowest) |
IX_ETH_ACC_TX_PRIORITY_6 |
submission prority of 6 (0 is lowest) |
IX_ETH_ACC_TX_PRIORITY_7 |
Highest priority submission. |
IX_ETH_ACC_TX_DEFAULT_PRIORITY |
By default send all pkts with lowest priority. |
Definition at line 141 of file IxEthAcc.h. |
enum IxEthAccTxSchedulerDiscipline
|
|
|
Definition for the port transmit scheduling discipline Definition for the port transmit scheduling discipline.
Select the port transmit scheduling discipline
- FIFO : No Priority : In this configuration all frames submitted to the access component shall be sub-mitted to the MAC hardware in the strict order in which it was received.
- FIFO : Priority : This shall be a very simple priority mechanism all submitted frames at a higher prior-ity shall be forwarded to Ethernet MAC for transmission before lower priorities. There shall be no fairness mechanisms applied across different priorities. Higher priority frames could starve lower priority frames indefinitely.
- Enumeration values:
-
FIFO_NO_PRIORITY |
frames submitted with no priority |
FIFO_PRIORITY |
higher prority frames submitted before lower priority |
Definition at line 1333 of file IxEthAcc.h. |
Function Documentation
|
Initialize the Ethernet Access Service.
Initialize the IXP425 Ethernet Access Service.
- Reentrant - no
- ISR Callable - no
This should be called once per module initialization. - Precondition:
- The NPE must first be downloaded with the required microcode which supports all required features.
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : Service has failed to initialize.
|
|
Initialize the ethernet MAC settings.
* - Reentrant - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
|
|
Clear the statistics maintained for a port. Clear the statistics maintained for a port.
- Reentrant - yes
- ISR Callable - no
- Precondition:
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : Invalid arguments.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Return the statistics maintained for a port. Return the statistics maintained for a port.
- Reentrant - yes
- ISR Callable - no
- Precondition:
- Parameters:
-
- Note:
- Please note the user is responsible for cache coheriency of the retStat buffer. The data is actually populated via the NPE's. As such cache safe memory should be used in the retStats argument.
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : Invalid arguments.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Return and clear the statistics maintained for a port. Return and clear the statistics maintained for a port.
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- Parameters:
-
- Note:
- Please note the user is responsible for cache coheriency of the retStats buffer. The data is actually populated via the NPE's. As such cache safe memory should be used in the retStats argument.
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : invalid arguments.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
ixEthAccMiiReadRtn |
( |
UINT8 |
phyAddr, |
|
|
UINT8 |
phyReg, |
|
|
UINT16 * |
value |
|
) |
|
|
|
Read a 16 bit value from a PHY.
Read a 16-bit word from a register of a MII-compliant PHY. Reading is performed through the MII management interface. This function returns when the read has successfully completed, or when a timeout has elapsed.
- Reentrant - no
- ISR Callable - no
- Precondition:
- The MAC on Ethernet Port 2 (NPE C) must be initialised, and generating the MDIO clock.
- Parameters:
-
phyAddr: | the address of the Ethernet PHY (0-31) |
phyReg: | the number of the MII register to read (0-31) |
value: | the value read from the register |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : failed to read register.
|
ixEthAccMiiStatsShow |
( |
UINT32 |
phyAddr |
) |
|
|
|
Display detailed information on a specified PHY.
Display the current values of the first eigth MII registers for a PHY,
- Reentrant - no
- ISR Callable - no
- Precondition:
- The MAC on Ethernet Port 2 (NPE C) must be initialised, and generating the MDIO clock.
- Parameters:
-
phyAddr: | the address of the Ethernet PHY (0-31) |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : invalid arguments.
|
ixEthAccMiiWriteRtn |
( |
UINT8 |
phyAddr, |
|
|
UINT8 |
phyReg, |
|
|
UINT16 |
value |
|
) |
|
|
|
Write a 16 bit value to a PHY.
Write a 16-bit word from a register of a MII-compliant PHY. Writing is performed through the MII management interface. This function returns when the write has successfully completed, or when a timeout has elapsed.
- Reentrant - no
- ISR Callable - no
- Precondition:
- The MAC on Ethernet Port 2 (NPE C) must be initialised, and generating the MDIO clock.
- Parameters:
-
phyAddr: | the address of the Ethernet PHY (0-31) |
phyReg: | the number of the MII register to write (0-31) |
value: | the value to write to the register |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : failed to write register.
|
|
Disable a port.
This disables an Ethernet port for both Tx and Rx. Free MBufs are returned to the user via the registered callback when the port is disabled
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- The port must be enabled with ixEthAccPortEnable, otherwise this function has no effect
- Parameters:
-
portId | : IxEthAccPortId : Port id to act upon. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is not initialized
- IX_ETH_ACC_MAC_UNINITIALIZED : port MAC address is not initialized
|
|
Get the duplex mode for the MAC.
return the duplex configuration of the IXP425 MAC.
- Note:
- The configuration should match that provisioned on the PHY. See ixEthAccDuplexModeSet
- Reentrant - no
- ISR Callable - no
- Parameters:
-
portId | : IxEthAccPortId |
*mode | : IxEthAccDuplexMode |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Set the duplex mode for the MAC.
Configure the IXP425 MAC to either full or half duplex.
- Note:
- The configuration should match that provisioned on the PHY.
- Reentrant - no
- ISR Callable - no
- Parameters:
-
portId | : IxEthAccPortId |
mode | : IxEthAccDuplexMode |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Enable a port.
This enables an Ethernet port for both Tx and Rx.
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- The port must first be initialized via ixEthAccPortInit and the MAC address must be set using ixEthAccUnicastMacAddressSet before enabling it The rx and Tx Done callbacks registration via ixEthAccPortTxDoneCallbackRegister amd ixEthAccPortRxCallbackRegister has to be done before enabling the traffic.
- Parameters:
-
portId | : IxEthAccPortId : Port id to act upon. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is not initialized
- IX_ETH_ACC_MAC_UNINITIALIZED : port MAC address is not initialized
|
|
Get the enabled state of a port.
Return the enabled state of the port.
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- The port must first be initialized via ixEthAccPortInit
- Parameters:
-
portId | : IxEthAccPortId : Port id to act upon. |
enabled | : BOOL : location to store the state of the port |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid
|
|
Initialize an Ethernet MAC Port.
Initialize the NPE/Ethernet MAC hardware. Verify NPE downloaded and operational. The NPE shall be available for usage once this API returns. Verify that the Ethernet port is present before initializing
- Reentrant - no
- ISR Callable - no
This should be called once per mac device. The NPE/MAC shall be in disabled state after init.
- Precondition:
- The component must be initialized via ixEthAccInit The NPE must first be downloaded with the required microcode which supports all required features.
Dependant on Services: (Must be initialized before using this service may be initialized) ixNPEmh - NPE Message handling service. ixQmgr - Queue Manager component.
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS: if the ethernet port is not present, a warning will be issued.
- IX_ETH_ACC_FAIL : The NPE processor has failed to initialize.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
|
|
ADD a multicast address to the MAC address table.
ADD a multicast address to the MAC address table. - Note:
- Due to the operation of the Ethernet MAC multicast filtering mechanism, frames which do not have a multicast destination address which were provisioned via this API may be forwarded to the NPE's. This is a result of the hardware comparison algorithm used in the destination mac address logic within the Ethernet MAC.
See Also: IXP425 hardware development manual.
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - no
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
*macAddr | - Ethernet Mac address. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : Error writing to the MAC registers
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Filter all frames with multicast dest.
This function clears the MAC address table, and then sets the MAC to forward ALL multicast frames to the NPE. Specifically, it forwards all frames whose destination address has the LSB of the highest byte set (01:00:00:00:00:00). This bit is commonly referred to as the "multicast bit". Broadcast frames will still be forwarded.
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - no
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Remove a multicast address from the MAC address table.
Remove a multicast address from the MAC address table.
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - no
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
*macAddr | - Ethernet Mac address. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_NO_SUCH_ADDR : Failed if MAC address was not in the table.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Clear the MAC address table.
This function clears the MAC address table, and then sets the MAC as configured by the promiscuous mode current settings.
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - no
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Display multicast address which have been configured using ixEthAccMulticastAddressJoin Display multicast address which have been configured using ixEthAccMulticastAddressJoin.
* - Reentrant - yes
- Parameters:
-
portId | - Ethernet port id. |
- Returns:
- void
|
|
Put the Ethernet MAC device in non-promiscuous mode.
In non-promiscuous mode the MAC will filter all frames other than destination MAC address which matches the following criteria:
- Unicast address provisioned via ixEthAccUnicastMacAddressSet
- All broadcast frames.
- Multicast addresses provisioned via ixEthAccMulticastAddressJoin
See also: ixEthAccPortPromiscuousModeSet
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Put the MAC device in promiscuous mode.
If the device is in promiscuous mode then all all received frames shall be forwared to the NPE for processing.
See also: ixEthAccPortPromiscuousModeClear
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
The function registered through this function shall be called once per received Ethernet frame.
This function will dispatch a predefined number of frames to the user level via the provided function. The invocation shall be made for each frame dequeued from the Ethernet QM queue. The user is required to free any MBUF's supplied via this callback. In addition the registered callback must free up MBUF's from the recieve free queue when the port is disabled
If called several times the latest callback shall be registered for a particular port.
- Reentrant - yes
- ISR Callable - yes
- Parameters:
-
portId | - Register callback for a particular MAC device. |
rxCallbackFn | - IxEthAccRxCallbackFn - Function to be called when Ethernet frames are availble. |
callbackTag | - This tag shall be provided to the callback function. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
- IX_ETH_ACC_INVALID_ARG : An argument other than portId is invalid.
|
|
Disable the appending of Ethernet FCS to all frames submitted to this port.
Do not forward the FCS portion of the received Ethernet frame to the user. The FCS is striped from the receive buffer. Frame FCS validity checks are still carried out on all received frames. This is the default behavior of the component. Do not change this behaviour while the port is enabled.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Forward frames with FCS included in the receive buffer to the user.
Enable the appending of Ethernet FCS to all frames submitted to this port. This is the default behavior of the access component. The Frame length recieved will include the FCS. ie. A minimum sized ethernet frame shall have a length of 64bytes.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
ixEthAccPortRxFreeReplenish |
( |
IxEthAccPortId |
portId, |
|
|
IX_MBUF * |
buffer |
|
) |
|
|
|
This function provides buffers for the Ethernet receive path.
This component does not have a buffer management mechanisms built in. All Rx buffers must be supplied to it via this interface.
- Reentrant - yes
- ISR Callable - yes
- Parameters:
-
portId | - Provide buffers only to specific Rx MAC. |
buffer | - Provide an MBUF to the Ethernet receive mechanism. Buffers size smaller than IX_ETHACC_RX_MBUF_MIN_SIZE may result in poor performances and excessive buffer chaining. Buffers larger than this size may be suitable for jumbo frames. Chained packets are not supported and the field IX_MBUF_NEXT_PKT_IN_CHAIN_PTR must be NULL. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : Buffer has was not able to queue the buffer in the receive service.
- IX_ETH_ACC_FAIL : Buffer size is less than IX_ETHACC_RX_MBUF_MIN_SIZE
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
- Note:
- If the buffer replenish operation fails it is the responsibility of the user to free the buffer.
Sufficient buffers must be supplied to the component to maintain receive throughput and avoid rx buffer underflow conditions. To meet this goal, It is expected that the user preload the component with a sufficent number of buffers prior to enabling the NPE Ethernet receive path. The recommended minimum number of buffers is 8.
For maximum performances, the mbuf size should be greater than the maximum frame size (Ethernet header, payload and FCS) + 64. Supplying smaller mbufs to the service results in mbuf chaining and degraded performances. The recommended size is IX_ETHACC_RX_MBUF_MIN_SIZE, which is enough to take care of 802.3 frames and "baby jumbo" frames without chaining, and "jumbo" frame within chaining.
Buffers may not be filled up to their length. The firware will fill them up to the previous 64 bytes boundary. The user has to be aware that the length of the received mbufs may be smaller than the length of the supplied mbufs.
- Warning:
- This function will only check the parameters if the NDEBUG flag is not defined. Turning on the argument checking (disabled by default) will result in a lower EthAcc performance as this function is part of the data path.
|
|
This function registers a callback function to facilitate the return of transmit buffers to the user.
This function registers the transmit buffer done function callback for a particular port.
The registered callback function is called once the previously submitted buffer is no longer required by this service. It may be returned upon successful transmission of the frame or shutdown of port prior to submission. The calling of this registered function is not a guarantee of successful transmission of the buffer.
If called several times the latest callback shall be registered for a particular port.
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- The port must be initialized via ixEthAccPortInit
- Parameters:
-
portId | - Register callback for a particular MAC device. |
txCallbackFn | - IxEthAccTxBufferDoneCallbackFn - Function to be called to return transmit buffers to the user. |
callbackTag | - This tag shall be provided to the callback function. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
- IX_ETH_ACC_INVALID_ARG : An argument other than portId is invalid.
|
|
Disable the appending of Ethernet FCS to all frames submitted to this port.
Disable the appending of Ethernet FCS to all frames submitted to this port. This is not the default behavior of the access component. Note: Since the FCS is not appended to the frame it is expected that the frame submitted to the component includes a valid FCS at the end of the data, although this will not be validated. The component shall forward the frame to the Ethernet MAC WITHOUT modification. Do not change this behaviour while the port is enabled.
- Note:
- Tx FCS append is not disabled while Tx padding is enabled.
- See also:
- ixEthAccPortTxFrameAppendPaddingEnable
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Enable the appending of Ethernet FCS to all frames submitted to this port.
Enable the appending of Ethernet FCS to all frames submitted to this port. This is the default behavior of the access component. Do not change this behaviour while the port is enabled.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Disable the appending of padding bytes to the runt frames submitted to this port.
Disable the appending of padding bytes to runt frames submitted to this port. This is not the default behavior of the access component.
- Warning:
- Do not change this behaviour while the port is enabled.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Enable the appending of padding bytes to runt frames submitted to this port.
Enable the appending of up to 60 null-bytes to runt frames submitted to this port. This is the default behavior of the access component.
- Warning:
- Do not change this behaviour while the port is enabled.
- Note:
- When Tx padding is enabled, Tx FCS generation is turned on
- See also:
- ixEthAccPortTxFrameAppendFCSDusable
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
This function shall be used to submit MBUFs buffers for transmission on a particular MAC device.
This function shall be used to submit MBUFs buffers for transmission on a particular MAC device.
When the frame is transmitted, the buffer shall be returned thru the callback IxEthAccPortTxDoneCallback.
The only alterations made to the buffer are assocuated with the next packet chain pointer. This is used to internally queue frames in the service when submitting faster than the network line rate. In case of over=Submitting, the order of the frames on the network may be modified.
Buffers shall be not queued for transmission if the port is disabled. The port can be enabled using ixEthAccPortEnable
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- ixEthAccPortTxDoneCallbackRegister must be called to register a function to allow this service to return the buffer to the calling service.
- Note:
- If the buffer submit fails for any reason the user has retained ownership of the buffer.
- Parameters:
-
portId | - MAC port ID to transmit Ethernet frame on. |
buffer | - pointer to an MBUF formatted buffer. Chained buffers are supported for transmission. Chained packets are not supported and the field IX_MBUF_NEXT_PKT_IN_CHAIN_PTR must be NULL. |
priority | - IxEthAccTxPriority |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_FAIL : Failed to queue frame for transmission.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Display unicast address has been configured using ixEthAccUnicastMacAddressSet.
Display unicast address has been configured using ixEthAccUnicastMacAddressSet. Display also the MAC filter used
Other functions modify the MAC filtering
In all cases, unicast and broadcast addresses are forwarded to the application.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
- Returns:
- void
|
|
Get unicast MAC address for a particular MAC port.
- Precondition:
- The MAC address must first be set via ixEthAccMacPromiscuousModeSet If the MAC address has not been set, the function will return a IX_ETH_ACC_MAC_UNINITIALIZED status
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
*macAddr | - Ethernet MAC address. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_MAC_UNINITIALIZED : port MAC address is not initialized.
- IX_ETH_ACC_FAIL : macAddr is invalid.
|
|
Configure unicast MAC address for a particular port.
- Reentrant - yes
- ISR Callable - no
- Parameters:
-
portId | - Ethernet port id. |
*macAddr | - Ethernet Mac address. |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Display a ports statistics on the standard io console using printf. Display a ports statistics on the standard io console using printf.
- Reentrant - no
- ISR Callable - no
- Precondition:
- Parameters:
-
- Returns:
- void
|
|
Set the port scheduling to one of IxEthAccTxSchedulerDiscipline Set the port scheduling to one of IxEthAccTxSchedulerDiscipline.
The default behavior of the component is FIFO_NO_PRIORITY.
- Reentrant - yes
- ISR Callable - yes
- Precondition:
- Parameters:
-
portId | : IxEthAccPortId |
sched | : IxEthAccTxSchedulerDiscipline |
- Returns:
- IxEthAccStatus
- IX_ETH_ACC_SUCCESS : Set appropriate discipline.
- IX_ETH_ACC_FAIL : Invalid/unsupported discipline.
- IX_ETH_ACC_INVALID_PORT : portId is invalid.
- IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized
|
|
Unload the Ethernet Access Service.
* - Reentrant - no
- Returns:
- void
|
|