Micro BFD Functions¶
emulation micro bfd config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Creates, modifies, or deletes an emulated Bidirectional Forwarding Detection (BFD) router on link aggregation group (LAG) ports. You must configure LAG before using this function.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation micro bfd config
mode= {create|{modify|reset} M
port_handle= <port_handle>
handle= <bfd_router_handle>
detect_multiplier= <2-255>
echo_rx_interval= <NUMERIC>
enable_my_discriminator_ipv4= {true|false}
enable_my_discriminator_ipv6= {true|false}
interval_time_unit= {msec | usec}
ipv4_dest_addr= <a.b.c.d>
ipv4_src_addr= <a.b.c.d>
ipv6_mask= <1-128>
ipv6_dest_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
ipv6_src_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
my_discriminator_ipv4= <NUMERIC>
my_discriminator_ipv6= <NUMERIC>
router_role= {active|passive}
rx_interval= <NUMERIC>
source_mac= <aa:bb:cc:dd:ee:ff>
tx_interval= <NUMERIC>
udp_dst_port= <NUMERIC>
authentication= {md5|none|simple}
md5_key_id= <NUMERIC>
password= <ANY>
Arguments:
mode
Specifies the action to perform. This argument is `Mandatory`.
Values::
create
Creates one or more BFD routers on the LAG port
specified with the port_handle argument
modify
Changes the configuration for the BFD router
identified by the handle argument
reset
Deletes all BFD routers specified by the
handle argument
port_handle
Specifies the LAG port on which to create the BFD router when
mode is set to create
handle
Specifies the BFD router handle to use when mode is set to
modify or reset
detect_multiplier
The negotiated transmit interval multiplied by this value is
the detection time for this session
Values: 2-255
Default: 3
echo_rx_interval
Minimum interval in milliseconds that the emulated router wants
between received BFD Echo packets
Default: 0
enable_my_discriminator_ipv4
Determines whether to manually override the discriminator
values that Spirent TestCenter generates for IPv4 sessions
Values: true, false
Default: false
enable_my_discriminator_ipv6
Determines whether to manually override the discriminator
values that Spirent TestCenter generates for IPv6 sessions
Values: true, false
Default: false
interval_time_unit
Time unit for all interval configurations
Values::
msec Milliseconds (ms)
usec Microseconds (us)
Default: msec
ipv4_dest_addr
Specifies the destination IP address for the first LAG
Default: 192.0.0.1
ipv4_src_addr
Specifies the source IP address for the first LAG
Default: 190.0.0.1
ipv6_mask
Specifies the IPv6 network mask
Default: 128
ipv6_dest_addr
Specifies the destination IPv6 address for the first LAG
Default: 2001::1
ipv6_src_addr
Specifies the source IPv6 address for the first LAG
Default: 2000::1
my_discriminator_ipv4
Specifies the starting discriminator value for IPv4 sessions
Dependency: enable_my_discriminator_ipv4 true
Default: 1
my_discriminator_ipv6
Specifies the starting discriminator value for IPv6 sessions
Dependency: enable_my_discriminator_ipv6 true
Default: 1
router_role
Specifies the role for the router to take
Values::
active
Take the active role. A system taking the active role
must send BFD Control packets for a particular session.
passive
Take the passive role. A system taking the passive role
must not begin sending BFD packets for a particular
session until it has received a BFD packet for that
session.
rx_interval
Specifies the interval in milliseconds that the emulated
router wants between received BFD Control packets
Default: 50
source_mac
Specifies the source MAC address for the first aggregation group
Default: 00:10:94:00:00:02
tx_interval
Specifies the interval in milliseconds that the emulated router
wants between transmitted BFD Control packets
Default: 50
udp_dst_port
Specifies the UDP destination port
Default: 6784
authentication
Type of authentication to use
Values:
md5 MD5 authentication
none No authentication
simple Simple password authentication
Default: none
md5_key_id
Specifies the MD5 key ID for the session
Dependency: md5_key_id md5
Default: 1
password
Specifies the password for the session
Dependency: md5_key_id simple
Default: Spirent
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
- handle
- A list of handles that identify the routers created by the
emulation micro bfd config
function - status
- Success (1) or failure (0) of the operation
- log
- An error message (if the operation failed)
- Description:
The
emulation micro bfd config
function creates, modifies, or deletes an emulated Bidirectional Forwarding Detection (BFD) router on LAG ports. (See the mode argument description for information about the actions.)The routers can be further configured with modify mode, or removed with reset mode.
You must configure LAG before using this function.
- Examples:
Sample Input:
set device_ret0 [emulation micro bfd config mode= create port_handle= $port1 detect_multiplier= 3 echo_rx_interval= 0 enable_my_discriminator_ipv4= false enable_my_discriminator_ipv6= false interval_time_unit= msec ipv4_session_addr= 10.10.10.20 ipv4_src_addr= 10.10.10.10 ipv6_mask= 128 ipv6_session_addr= "2001::88" ipv6_src_addr= "2000::99" my_discriminator_ipv4= 1 my_discriminator_ipv6= 1 name= micro_bfd_1 router_role= active rx_interval= 50 source_mac= "00:10:94:00:00:01" tx_interval= 50 udp_dst_port= 6784 authentication= none md5_key_id= 1 password= "Spirent" ]
Sample Output:
{handle lagbfdportconfig1} {status 1}
emulation micro bfd control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Starts, flaps, or stops BFD routers or sessions for the specified ports or device handles.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation micro bfd control
mode= {admin_up|admin_down|initiate_poll|start|stop|resume_pdus|
stop_pdus|set_diagnostic_state} M]
handle= <bfd_router_handle_list>
port_handle= <port_handle_list>
Arguments:
handle
Identifies a list of router handles or session handles on
which to stop or start the router. You must specify either
handle or -port_handle, but not both.
mode
Specifies the action to be taken. This argument is `Mandatory`.
Values::
admin_up
Administratively starts a BFD session for one or
more routers running BFD
admin_down
Administratively stops a BFD session for one or
more routers running BFD
initiate_poll
Initiates polling on one or more BFD sessions
with Demand mode enabled
stop
Stops the router for the specified port
start
Starts the router for the specified port
resume_pdus
Resumes sending BFD PDUs for one or more BFD
sessions
stop_pdus
Stops sending BFD PDUs for one or more BFD
sessions
set_diagnostic_state
Sets the code to be sent to specify the reason
for the last session state change
port_handle
Specifies a list of ports on which BFD emulation will
start, stop, flap, suspend, or resume. You must specify either
handle or -port_handle, but not both.
bfd_diagnostic_code
Specifies the diagnostic code to use
Dependency: mode set_diagnostic_state
Values:
no_diagnostic
No diagnostic (0)
cd_time_expire
Control detection time expired (1)
echo_function_failed
Echo function failed (2)
nbor_sig_session_down
Neighbor signaled session down (3)
for_plane_reset
Forwarding plane reset (4)
path_down
Path down (5)
concat_path_down
Concatenated path down (6)
admin_down
Administratively down (7)
reverse_concat_path_down
Reverse concatenated path down (8)
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
- status
- Success (1) or failure (0) of the operation
- log
- An error message (if the operation failed)
- Description:
- The
emulation micro bfd control
function controls the BFD operations through the specified ports. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)
Examples:
To start all BFD routers on the specified LAG port:
emulation bfd control mode=start port_handle $port1Sample Output:
{status 1}
emulation micro bfd info¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Returns information about the Micro BFD configuration
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation micro bfd info
mode= {port|session} M
handle= <bfd_router_handle>
port_handle= <port_handle>
Arguments:
handle
Specifies the router from which to retrieve BFD session
results. You must specify either handle or -port_handle,
but not both.
mode
Specifies the kind of information you want to see. This
argument is `Mandatory`.
Values::
port
Returns BFD results for the LAG
session
Returns BFD results for the IPv4 session from the port
You can combine the two modes using "|".
port_handle
Specifies the ports from which to retrieve BFD session results.
You must specify either handle or -port_handle, but not both.
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
- status
- Success (1) or failure (0) of the operation
- log
- An error message (if the operation failed)
The following keys are returned when you specify mode port:
- port.<bfd port config handle>.flap_count
- Number of times a flap event was detected by BFD on this port
- port.<bfd port config handle>.rx_count
- Number of BFD packets received on this port
- port.<bfd port config handle>.timeout_count
- Number of timeout conditions detected by BFD on this port
- port.<bfd port config handle>.tx_count
- Number of BFD packets sent on this port
- port.<bfd port config handle>.sessions_up_count
- Number of BFD sessions in Up state
- port.<bfd port config handle>.sessions_down_count
- Number of BFD sessions in Down and AdminDown states
The following keys are returned when you specify mode session:
- session.<bfd port config handle>.bfd_control_bits
- A bit mask of the PFCADR bits in the BFD Control packet
- session.<bfd port config handle>.bfd_diagnostic_code
- Local reason for the last session state change
- session.<bfd port config handle>.bfd_session_state
- Current BFD session state as seen by the transmitting system
- session.<bfd port config handle>.flap_count
- Number of times a flap event was detected by BFD on this LAG
- session.<bfd port config handle>.ipv4dst_addr
- IPv4 destination address
- session.<bfd port config handle>.ipv4src_addr
- IPv4 source address
- session.<bfd port config handle>.last_bfd_diagnostic_error_rx
- Value of the last diagnostic error received by the LAG
- session.<bfd port config handle>.my_discriminator
- Transmitted discriminator identifier
- session.<bfd port config handle>.rx_avg_rate
- Average rate (packets per second) at which BFD packets were received
- session.<bfd port config handle>.rx_count
- Number of BFD control packets received
- session.<bfd port config handle>.rx_desired_min_rx_interval
- Desired minimum receive interval for Control packets received from the DUT
- session.<bfd port config handle>.rx_max_rate
- Maximum rate (packets per second) at which BFD packets were received
- session.<bfd port config handle>.rx_min_rate
- Minimum rate (packets per second) at which BFD packets were received
- session.<bfd port config handle>.timeout_count
- Number of timeout conditions detected by BFD on this LAG
- session.<bfd port config handle>.tx_avg_rate
- Average rate (packets per second) at which BFD packets were transmitted
- session.<bfd port config handle>.tx_count
- Number of BFD Control packets sent
- session.<bfd port config handle>.tx_interval
- Negotiated transmit interval in milliseconds
- session.<bfd port config handle>.tx_max_rate
- Maximum rate (packets per second) at which BFD packets were transmitted
- session.<bfd port config handle>.tx_min_rate
- Minimum rate (packets per second) at which BFD packets were transmitted
- session.<bfd port config handle>.your_discriminator
- Discriminator identifier received from the DUT
- Description:
The
emulation micro bfd info
function provides information about either the routers or ports specified for the BFD configuration.This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message. Function return values are formatted as a keyed list (supported by the Tcl extension software - TclX). Use the TclX function keylget to retrieve data from the keyed list. (See Return Values for a description of each key.)
- Examples:
Sample Input:
set results_ret1 [emulation micro bfd info port_handle= "$port1 $port2" mode= "session|port"]
Sample Output:
{status 1} {session {{lagbfdportconfig1 {{tx_interval 1000} {rx_min_rate 0} {rx_desired_min_rx_interval 1000} {tx_min_rate 0.88} {rx_avg_rate 0} {rx_count 0} {rx_max_rate 0} {flap_count 0} {tx_max_rate 1.227} {tx_count 7} {tx_avg_rate 1.05} {bfd_control_bits 8} {ipv4src_addr 10.10.10.10} {last_bfd_diagnostic_error_rx NO_DIAGNOSTIC} {timeout_count 0} {bfd_session_state DOWN} {ipv4dst_addr 10.10.10.20} {bfd_diagnostic_code NO_DIAGNOSTIC} {my_discriminator 49152} {your_discriminator 0}}} {lagbfdportconfig2 {{tx_interval 1000} {rx_min_rate 0} {rx_desired_min_rx_interval 1000} {tx_min_rate 0.881} {rx_avg_rate 0} {rx_count 0} {rx_max_rate 0} {flap_count 0} {tx_max_rate 1.265} {tx_count 7} {tx_avg_rate 1.066} {bfd_control_bits 8} {ipv4src_addr 20.10.10.10} {last_bfd_diagnostic_error_rx NO_DIAGNOSTIC} {timeout_count 0} {bfd_session_state DOWN} {ipv4dst_addr 20.10.10.20} {bfd_diagnostic_code NO_DIAGNOSTIC} {my_discriminator 49153} {your_discriminator 0}}}}} {port {{lagbfdportconfig1 {{tx_count 7} {rx_count 0} {sessions_down_count 1} {timeout_count 0} {flap_count 0} {sessions_up_count 0}}} {lagbfdportconfig2 {{tx_count 7} {rx_count 0} {sessions_down_count 1} {timeout_count 0} {flap_count 0} {sessions_up_count 0}}}}}