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

Rate

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

Loopback

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:

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:

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

}

SEE ALSO

bert, bertErrorGeneration, card, port