bertUnframed
bertUnframed - configure unframed BERT specific parameters on a port
SYNOPSIS
bertUnframed sub-command options
DESCRIPTION
The bertUnframed command is used to configure line speed and other operational characteristics of an unframed BERT port.
STANDARD OPTIONS
dataRate
The particular data rate for the port. The choices available depend on the setting of the clockSelect option of the card command. Options include:
Option |
Value |
Usage |
---|---|---|
bertUnfrramedInvalidLine |
0 |
(default) |
bertUnframedOc3 |
1 |
155.52 Mbps (OC-3). Only valid if card - cardSelect = cardBertUnframedClockSonet. |
bertUnframedOc12 |
2 |
622.08 Mbps (OC-12). Only valid if card - cardSelect = cardBertUnframedClockSonet. |
bertUnframedOc48 |
3 |
2.488 Gbps (OC-48). Only valid if card - cardSelect = cardBertUnframedClockSonet. |
bertUnframedOc3WithFec |
4 |
166.63 Mbps (OC-3 FEC). Only valid if card - cardSelect = cardBertUnframedClockSonetWithFEC |
bertUnframedOc12WithFec |
5 |
666.51 Mbps (OC-12 FEC). Only valid if card - cardSelect = cardBertUnframedClockSonetWithFEC |
bertUnframedOc48WithFec |
6 |
2.67 Gbps (OC-48 FEC). Only valid if card - cardSelect = cardBertUnframedClockSonetWithFEC |
bertUnframedGigEthernet |
7 |
1.25Gbps (Gigabit Ethernet). Only valid if card - cardSelect = cardBertUnframedClockGigE |
bertUnframedFiberChannel1 |
8 |
1.062 Gbps (Fibre Channel). Only valid if card - cardSelect = cardBertUnframedClockFiberChannel |
bertUnframedFiberChannel2 |
9 |
2.124 Gbps (2x Fibre Channel). Only valid if card - cardSelect = cardBertUnframedClockFiberChannel |
bertUnframed1x |
10 |
Use the external clock directly. Only valid if card - cardSelect = cardBertUnframedClockExternal |
bertUnframed4x |
11 |
Multiply the external clock rate by a factor of 4. Only valid if card - cardSelect = cardBertUnframedClockExternal |
bertUnframed8x |
12 |
Multiply the external clock rate by a factor of 8. Only valid if card - cardSelect = cardBertUnframedClockExternal |
bertUnframed16x |
13 |
Multiply the external clock rate by a factor of 16. Only valid if card - cardSelect = cardBertUnframedClockExternal |
enableTransceiver
BypassPllExClock
(default = 0)
operation
The basic line operation.
Option |
Value |
Usage |
---|---|---|
bertUnframedNormal |
0 |
(default) Operate in normal transmit, receive mode. |
bertUnframedDiagnostic |
1 |
Operate in diagnostic loopback mode. |
bertUnframedLineLoopback |
2 |
Operate in line loopback mode. |
useRecoveredClock
true | false
If true, use the clock recovered from the received data rather than the internally generated clock. (default = 0)
COMMANDS
The bertUnframed command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.
bertUnframed cget option
Returns the current value of the configuration option given by option. Option may have any of the values accepted by the bertUnframed command.
bertUnframed config option value
Modify the configuration options of the bertUnframed command. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for bertUnframed.
bertUnframed get chasID cardID portID
Gets the current configuration for port with id portID on card cardID, chassis chasID. from its hardware. Call this command before calling bertUnframed cget option value to get the value of the configuration option. Specific errors are:
- No connection to a chassis
- Invalid port number
bertUnframed set chasID cardID portID
Sets the configuration of the bertUnframed command in IxHAL for port with id portID on card cardID, chassis chasID by reading the configuration option values set by the bertUnframed config option value command. Specific errors are:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
- Bert is not supported for this port type (PoS only)
- Configured parameters are not valid for this setting
bertUnframed set Default
Sets to IxTclHal default values for all configuration options.
EXAMPLES
package require IxTclHal
set host localhost
set username user
# Check if we're running on UNIX - connect to the TCL Server
# which must be running on the chassis
if [isUNIX] {
if [ixConnectToTclServer $host] {
ixPuts "Could not connect to $host"
return 1
}
}
# Now connect to the chassis
if [ixConnectToChassis $host] {
ixPuts $::ixErrorInfo
return 1
}
# Get the chassis ID to use in port lists
set chas [ixGetChassisID $host]
# Assuming that a multi-rate unframed Bert card in slot 25
set card 25
set portList [list [list $chas $card 1]]
# Login before taking ownership
if [ixLogin $username] {
ixPuts $::ixErrorInfo
return 1
}
# Take ownership of the ports we'll use
if [ixTakeOwnership $portList] {
ixPuts $::ixErrorInfo
return 1
}
# Check for missing card
if {[card get $chas $card] != 0} \
{
ixPuts "Card $card does not exist"
return 1
}
# Get the type of card and check if it's the correct type
set cardType [card cget -type]
if {[port isValidFeature $chas $card 1 portFeatureBertUnframed] == 0} \
{
ixPuts "Card $card does not have unframed Bert capability"
return 1
}
# Set the card clock select to Sonet FEC
card setDefault
card config -clockSelect cardBertUnframedClockSonetWithFEC
if [card set $chas $card] {
ixPuts "Can't card set for $chas:$card"
return 1
}
# Set the options to default values
bertUnframed setDefault
# Set the unframed speed to OC48c FEC rates and normal operation
bertUnframed config -dataRate bertUnframedOc48WithFec
bertUnframed config -operation bertUnframedNormal
if [bertUnframed set $chas $card 1] {
ixPuts "Could not bertUnframed set on $chas:$card:1"
return 1
}
# Now do the normal Bert testing things
bert setDefault
bert config -txRxPatternMode bertTxRxCoupled
bert config -txPatternIndex bertPattern2_20
bert config -enableInvertTxPattern enable
if [bert set $chas $card 1] {
ixPuts "Can't bert set on $chas:$card:1"
return 1
}
ixWritePortsToHardware portList
# Now we need to send a start transmit to the port to gather statistics
# and then read the statistics
ixStartPortTransmit $chas $card 1
after 1000
# Stop statistics gathering
ixStopPortTransmit $chas $card 1
# Fetch the number of bits received
stat get statBertBitsReceived $chas $card 1
set received [stat cget -bertBitsReceived]
ixPuts "$received bits were received after 1 second"
# Bert error generation example
bertErrorGeneration setDefault
# Set for 10^4 errors
bertErrorGeneration config -errorBitRate bert_1e4
bertErrorGeneration set $chas $card 1
ixWritePortsToHardware portList
# Enable statistics gathering
ixStartPortTransmit $chas $card 1
# Send the error continously for 10 seconds
bertErrorGeneration startContinuousError $chas $card 1
after 10000
bertErrorGeneration stopContinuousError $chas $card 1
ixStopPortTransmit $chas $card 1
# And get the number of errored bits
stat get statBertBitErrorsReceived $chas $card 1
set received [stat cget -bertBitErrorsReceived]
ixPuts "$received bit errors were received after 10 seconds"
# Let go of the ports that we reserved
ixClearOwnership $portList
# Disconnect from the chassis we're using
ixDisconnectFromChassis $host
# If we're running on UNIX, disconnect from the TCL Server
if [isUNIX] {
ixDisconnectTclServer $host
}