Main Page Modules Alphabetical List Data Structures File List Data Fields Globals
IXP425 ADSL Driver APIThe public API for the IXP425 ADSL Driver.
More...
|
Typedefs |
typedef void(* | IxAdslStateChangeCallback )(UINT32 lineNum, IxAdslLineState lineState) |
| Callback function to indicate of the changes on the line state.
|
Enumerations |
enum | IxAdslStatus {
IX_ADSL_STATUS_SUCCESS,
IX_ADSL_STATUS_FAIL,
IX_ADSL_STATUS_UNSUPPORTED_MODE,
IX_ADSL_STATUS_ALREADY_DOWN
} |
| These status will be used by the APIs to return to the client. More...
|
enum | IxAdslLineState {
IX_ADSL_LINE_STATE_UP_DUAL_LATENCY,
IX_ADSL_LINE_STATE_WAIT_FOR_ACTIVATING,
IX_ADSL_LINE_STATE_ACTIVATING,
IX_ADSL_LINE_STATE_DOWN,
IX_ADSL_LINE_STATE_UP_FASTCHANNEL,
IX_ADSL_LINE_STATE_UP_INTERLEAVECHANNEL,
IX_ADSL_LINE_STATE_INVALID
} |
| These status will be used to indicate the line state. More...
|
enum | IxAdslLineType {
IX_ADSL_AUTOSELECT,
IX_ADSL_GLITE,
IX_ADSL_DMT,
IX_ADSL_ANSI,
IX_ADSL_LOOPBACK,
IX_ADSL_INVALID_MODE
} |
| Used to indicate the type of ADSL line type used. More...
|
enum | IxAdslPhyType {
IX_ADSL_PHY_CPE,
IX_ADSL_PHY_INVALID
} |
| Used to indicate the ADSL physical type - CPE. More...
|
Functions |
PUBLIC IxAdslStatus | ixAdslLineOpen (UINT32 lineNum, IxAdslLineType lineType, IxAdslPhyType phyType) |
| Open the given ADSL line in the specified mode and type.
|
PUBLIC IxAdslStatus | ixAdslLineClose (UINT32 lineNum) |
| Closes a previously opened ADSL line.
|
PUBLIC IxAdslStatus | ixAdslLineStateChangeCallbackRegister (UINT32 lineNum, IxAdslStateChangeCallback lineChangeCallbackFn) |
| This is a notification registration procedure that gets called if the line state of the given ADSL line changes. The maximum callbacks that can be registered is defined as IX_ADSL_SIZEOF_CALLBACK_LIST (The default value is 10).
|
PUBLIC IxAdslLineState | ixAdslLineStateGet (UINT32 lineNum) |
| Returns the current state of the given ADSL line.
|
PUBLIC UINT32 | ixAdslLineRateUpstreamGet (UINT32 lineNum) |
| Return the current upstream line speed of the given ADSL line.
|
PUBLIC UINT32 | ixAdslLineRateDownstreamGet (UINT32 lineNum) |
| Return the current downstream line speed of the given ADSL line.
|
PUBLIC IxAdslStatus | ixAdslDyingGaspEnable (UINT32 lineNum) |
| Enables the function that informs ATU-C when condition that leads to shutdown of the given Adsl line has been detected.
|
PUBLIC IxAdslStatus | ixAdslVendorCodeSet (UINT32 lineNum, UINT8 ixAdslItuVendoridCountrycode, UINT8 ixAdslItuVendoridVendorcode1, UINT8 ixAdslItuVendoridVendorcode2, UINT8 ixAdslItuVendoridVendorcode3, UINT8 ixAdslItuVendoridVendorcode4, UINT8 ixAdslItuVendoridVendorspecific1, UINT8 ixAdslItuVendoridVendorspecific2) |
| Set the vendor specific bytes in the given ADSL line.
|
PUBLIC void | ixAdslShow (UINT32 lineNum) |
| This function will show the current statistics associated with the given ADSL Line.
|
PUBLIC void | ixAdslMemoryUnmap (void) |
| This function will unmap the dynamically allocated addresses.
|
Detailed Description
The public API for the IXP425 ADSL Driver.
Typedef Documentation
typedef void(* IxAdslStateChangeCallback)( UINT32 lineNum, IxAdslLineState lineState)
|
|
|
Callback function to indicate of the changes on the line state.
Definition at line 178 of file IxAdsl.h. |
Enumeration Type Documentation
|
These status will be used to indicate the line state.
- Enumeration values:
-
IX_ADSL_LINE_STATE_UP_DUAL_LATENCY |
The line is in showtime state.
Fast & Interleaved Channel |
IX_ADSL_LINE_STATE_WAIT_FOR_ACTIVATING |
The line is waiting for the peer to activate. |
IX_ADSL_LINE_STATE_ACTIVATING |
The line is negotiating with its peer. |
IX_ADSL_LINE_STATE_DOWN |
The line is down. |
IX_ADSL_LINE_STATE_UP_FASTCHANNEL |
The line is in showtime state.
Fast Channel |
IX_ADSL_LINE_STATE_UP_INTERLEAVECHANNEL |
The line is in showtime state.
Interleaved Channel |
IX_ADSL_LINE_STATE_INVALID |
ADSL line in an unknown state. |
Definition at line 91 of file IxAdsl.h. |
|
Used to indicate the type of ADSL line type used.
- Enumeration values:
-
IX_ADSL_AUTOSELECT |
This is an auto-select mode for the CPE to auto-configure based on the CO/DSLAM line type; DMT, ANSI or G.lite. |
IX_ADSL_GLITE |
G.lite line type. |
IX_ADSL_DMT |
DMT line type. |
IX_ADSL_ANSI |
ANSI line type. |
IX_ADSL_LOOPBACK |
Utopia Loopback line type. |
IX_ADSL_INVALID_MODE |
Used internally to indicate last valid enum. |
Definition at line 132 of file IxAdsl.h. |
|
Used to indicate the ADSL physical type - CPE.
- Note:
- IxAdslPhyType is declared as an enum due to forward compatibility to support CO (fast and interleaved mode) in the future.
- Enumeration values:
-
IX_ADSL_PHY_CPE |
Adsl type is CPE. |
IX_ADSL_PHY_INVALID |
Adsl type is invalid. |
Definition at line 161 of file IxAdsl.h. |
|
These status will be used by the APIs to return to the client.
- Enumeration values:
-
IX_ADSL_STATUS_SUCCESS |
Successful API execution. |
IX_ADSL_STATUS_FAIL |
Failed API execution. |
IX_ADSL_STATUS_UNSUPPORTED_MODE |
Unsupported mode type for IxAdslLineOpen function. |
IX_ADSL_STATUS_ALREADY_DOWN |
Line is already down. |
Definition at line 70 of file IxAdsl.h. |
Function Documentation
ixAdslDyingGaspEnable |
( |
UINT32 |
lineNum |
) |
|
|
|
Enables the function that informs ATU-C when condition that leads to shutdown of the given Adsl line has been detected.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
Blocking : This call is a non-blocking
Impacts On Global Data: None
Pre-Conditions: Task level calls only. Only Available in ATU-R.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
- Returns:
- IX_ADSL_STATUS_SUCCESS - Dying Gasp is enabled. successfully.
- IX_ADSL_STATUS_FAILED - Failed to enable Dying Gasp.
|
ixAdslLineClose |
( |
UINT32 |
lineNum |
) |
|
|
|
Closes a previously opened ADSL line.
The line will closed and put in the idle state.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
Blocking : Non-blocking
Impacts On Global Data: Sets the lineEnable State . Notifies a callback routine.
Pre-Conditions: Code should only be called from task level.
Post-Conditions: No cleanup after this call is required.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used and to be closed. |
- Returns:
- IX_ADSL_STATUS_SUCCESS - Line was closed successfully.
- IX_ADSL_STATUS_FAILED - Line failed to close properly.
- IX_ADSL_STATUS_ALREADY_DOWN - Line was not open before close.
|
|
Open the given ADSL line in the specified mode and type.
Opens the given ADSL line in the specified mode and puts it in the 'Showtime' state, i.e. available to carry user data.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
- The parameter phyType exists for future CO support.
Blocking : This call may block for several seconds while the link is established.
Impacts On Global Data: Sets the lineEnable State .
Pre-Conditions: The code must only be called once the operating system is running, i.e. do not call as part of the hardware init as this code requires base services such as Atmd, Atmm, Atm scheduler and Utopia. The code should only be called from task level.
Post-Conditions: No cleanup after this call is required.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
lineType | [in] indicates type of ADSL to be opened. |
phyType | [in] is the type of Phy used - CPE. |
- Returns:
- IX_ADSL_STATUS_SUCCESS - Line was opened and is in 'showtime' state
- IX_ADSL_STATUS_FAILED - Line failed to open properly.
- IX_ADSL_STATUS_UNSUPPORTED_MODE - Illegal ADSL type for IxAdslLineOpen function.
|
ixAdslLineRateDownstreamGet |
( |
UINT32 |
lineNum |
) |
|
|
|
Return the current downstream line speed of the given ADSL line.
The data returned by this API is the received (Rx) rate of the line the ATU device.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
Blocking : This call is a non-blocking
Impacts On Global Data: None
Pre-Conditions: Task level calls only.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
- Returns:
- Integer - bit rate in kbits/second. N.B. Returns zero if the line is not in 'Showtime' state.
|
ixAdslLineRateUpstreamGet |
( |
UINT32 |
lineNum |
) |
|
|
|
Return the current upstream line speed of the given ADSL line.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
The data returned by this API represents the transmit (Tx) rate of the line from the ATU device.
Blocking : This call is a non-blocking
Impacts On Global Data: None
Pre-Conditions: Task level calls only.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
- Returns:
- Integer - bit rate in kbits/second. N.B. Returns zero if the line is not in 'Showtime' state.
|
|
This is a notification registration procedure that gets called if the line state of the given ADSL line changes. The maximum callbacks that can be registered is defined as IX_ADSL_SIZEOF_CALLBACK_LIST (The default value is 10).
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
Blocking : This call is a non-blocking function.
Impacts On Global Data: This sets a global callback handler.
Pre-Conditions: There are no pre conditions to this call.
Post-Conditions: A global line state handler for ADSL line state changes shall be registered. It is advisable to register the callback before the given ADSL line is opened.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
lineChangeCallbackFn | [in] is the callback function that will be invoked when there is a state change |
- Returns:
- IX_ADSL_STATUS_SUCCESS - The callback function was registered successfully.
- IX_ADSL_STATUS_FAILED - Internal error, registration of the callback function failed.
|
ixAdslLineStateGet |
( |
UINT32 |
lineNum |
) |
|
|
|
Returns the current state of the given ADSL line.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
Blocking : This call is a non-blocking
Impacts On Global Data: None
Pre-Conditions: Task level calls only.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
- Returns:
- IX_ADSL_LINE_STATE_UP_FAST - The line is in show time state.
- IX_ADSL_LINE_STATE_WAIT_FOR_ACTIVATING - The line is waiting fo the peer to activate.
- IX_ADSL_LINE_STATE_ACTIVATING - The line is negotiating with its peer.
- IX_ADSL_LINE_STATE_DOWN - The line is idle.
- IX_ADSL_LINE_STATE_INVALID - The line is in an unknown state.
|
ixAdslMemoryUnmap |
( |
void |
|
) |
|
|
|
This function will unmap the dynamically allocated addresses.
Blocking : This call is non-blocking.
Impacts On Global Data: None
Pre-Conditions: Task level calls only.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
- Returns:
- None
|
ixAdslShow |
( |
UINT32 |
lineNum |
) |
|
|
|
This function will show the current statistics associated with the given ADSL Line.
- Note:
- The parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
The list of statistics to be shown by IxAdslShow:
- Controller SW Version
- ADSL Line State
- Line Number
- Upstream and Downstream Rate
- Training Statistics for Upstream and Downstream Rates
- ADSL Near End Operational Data such as Upstream Relative Capacity Occupancy, Noise Margin Upstream, Output Pwr Downstream, Attenuation Upstream, Downstream Fast Bitrate, Downstream Interleaved Bitrate, Near-end defect bitmap, Loss of Frame (secs), Loss of Cell delineation (secs), Loss of Signal (secs), Loss of Margin (secs), Errored seconds, HEC and FEC Errors.
- ADSL Far End Operational Data such as Downstream Relative Capacity Occupancy, Noise Margin Downstream, Output Pwr Upstream, Attenuation Downstream, Upstream Fast Bitrate, Upstream Interleaved Bitrate, Far-end defect bitmap
- Tx and Rx ATM Cell Counters
Blocking : This call is non-blocking.
Impacts On Global Data: None
Pre-Conditions: Task level calls only.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
- Returns:
- None
|
ixAdslVendorCodeSet |
( |
UINT32 |
lineNum, |
|
|
UINT8 |
ixAdslItuVendoridCountrycode, |
|
|
UINT8 |
ixAdslItuVendoridVendorcode1, |
|
|
UINT8 |
ixAdslItuVendoridVendorcode2, |
|
|
UINT8 |
ixAdslItuVendoridVendorcode3, |
|
|
UINT8 |
ixAdslItuVendoridVendorcode4, |
|
|
UINT8 |
ixAdslItuVendoridVendorspecific1, |
|
|
UINT8 |
ixAdslItuVendoridVendorspecific2 |
|
) |
|
|
|
Set the vendor specific bytes in the given ADSL line.
The vendor ID must be set before the line is open, if not the default vendor ID shall be sent to the peer modem upon request.
- Note:
- Vendor specific values are taken by the phy and linked together to form a single code
- Note that the parameter lineNum exists for future Multi-PHY support. Only lineNum = 0 is valid.
Blocking : This call is a non-blocking
Impacts On Global Data: Sets an internal ADSL global data structure. This shall be used for all subsequent ADSL line open commands.
Pre-Conditions: Task level calls only.
Post-Conditions: None.
Exceptions: None.
- Parameters:
-
lineNum | [in] is the parameter showing which ADSL line is being used. |
ixAdslItuVendoridCountrycode | [in] is the vendor country code that are predefined in standards. |
ixAdslItuVendoridVendorcode1 | [in] is the vendor code 1 that are predefined in standards. |
ixAdslItuVendoridVendorcode2 | [in] is the vendor code 2 that are predefined in standards. |
ixAdslItuVendoridVendorcode3 | [in] is the vendor code 3 that are predefined in standards. |
ixAdslItuVendoridVendorcode4 | [in] is the vendor code 4 that are predefined in standards. |
ixAdslItuVendoridVendorspecific1 | [in] is the vendor specific 1 that are predefined in standards. |
ixAdslItuVendoridVendorspecific2 | [in] is the vendor specific 2 that are predefined in standards. |
- Returns:
- IX_ADSL_STATUS_SUCCESS - Set Vendor Code successful.
- IX_ADSL_STATUS_FAILED - Set Vendor Code failed because the line is up.
|
|