IPTV Functions¶
sth::emulation_iptv_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Configures, modifies or disables the IPTV protocol on Spirent HLTAPI. Internet Protocol Television (IPTV) is a system of providing digital television content to subscribers over an IP network. Typically the content is delivered over a broadband connection and may be bundled with digital voice and Internet services.
Spirent HLTAPI emulates thousands of set-top boxes per port. It can be used to identify the minimum, average, and maximum time required to change channels per set-top box (STB). Profiles can be defined for different types of channel-changing behavior, such as rapidly changing channels (known as channel zapping). Multicast channel data can be emulated or sent from a real source outside of Spirent TestCenter.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_iptv_config [-handle <device_handle> M] [-mode {modify|enable|disable} M] [-inter_client_start_delay_step <NUMERIC>] [-save_time_stamps_enable {true|false|0|1}] [-channel_viewing_profile <channel_viewing_profile>] [-viewing_behavior_profile <viewing_behavior_profile>]
Arguments¶
-
-handle
¶
Specifies the device handle on which to enable, modify, or disable the IPTV protocol. The device must have IGMP or MLD configured on it. This argument is Mandatory .
-
-mode
¶
Specifies the action to perform. Possible values are enable, modify, or disable. This argument is Mandatory . The modes are described below:
enable Creates IPTV protocol on the specified device handle modify Changes the configurations for the IPTV protocol. disable Disables the IPTV protocol on the device specified by -handle
-
-inter_client_start_delay_step
¶
Specifies the delay period (in msec) between the first Join messages of consecutive IPTV clients in the block. The default value is 0.
-
-save_time_stamps_enable
¶
Once enabled, Spirent HLTAPI will save timestamps of individual events in the end-of-test database. Possible values are true (enable) or false (disable). The default value is false.
-
-channel_viewing_profile
¶
Specifies the channel viewing profiles for the channel blocks that this STB will view during the test. The handle is returned from the sth::emulation_iptv_channel_viewing_profile_config function.
-
-viewing_behavior_profile
¶
Specifies the profile handle that is used to describe the viewing behavior of the block. The handle is returned from the
sth::emulation_iptv_viewing_behavior_profile_config
function.
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):
session_handle The IPTV configuration handle returned by the function,
which is required by -mode modify or disable
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::emulation_iptv_config
function configures, modifies, or disables the IPTV
protocol on Spirent HLTAPI. Use the -mode argument to specify the action to perform.
When you configure the IPTV protocol, use the -handle argument to specify the
device on which the IPTV will be created. You must also specify the channel
viewing profile handle and the viewing behavior handle returned from the
sth::emulation_iptv_channel_viewing_profile_config and
sth::emulation_iptv_viewing_behavior_profile_config
functions.
For more information on the usage, see Examples.
Examples¶
The following example enables the IPTV protocol:
set device_cfg_ret0 [sth::emulation_iptv_config\
-mode enable\
-handle $device_created\
-viewing_behavior_profile $view_behaviors \
-channel_viewing_profile $viewed_channel_handle \
-save_time_stamps_enable false \
-inter_client_start_delay_step 0 \
]
Sample Output:
{session_handle iptvstbblockconfig1} {status 1}
The following example modifies the IPTV protocol:
set device_cfg_ret0 [sth::emulation_iptv_config \
-mode modify\
-handle $device_created\
-save_time_stamps_enable true \
-inter_client_start_delay_step 10 ]
Sample Output:
{status 1}
sth::emulation_iptv_channel_block_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Sets up IPTV channel groups using blocks of multicast groups
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_iptv_channel_block_config [-mode {create|modify|delete} M] [-handle <IPTV_channel_handle>] [-multicast_group_handle <multicast_group_handle>] [-channel_name <string>] [-channel_start <1-32000>] [-filter_mode {include|exclude}] [-user_source_enable {true|false|0|1}] [-subscribed_source <ANY>] [-source_pool_handle <source_pool_handle>]
Arguments¶
-
-handle
¶
Specifies the IPTV channel block handle. It is required when the mode is modify or delete.
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are described below:
create Creates an IPTV channel group modify Modifies the IPTV channel group specified by -handle delete Deletes the IPTV channel group specified by -handle
-
-multicast_group_handle
¶
Specifies the multicast group handle on which to enable the IPTV channel. The handle is returned from the
sth::emulation_multicast_group_config
function.
-
-channel_name
¶
Specifies the name for the IPTV channel block
-
-channel_start
¶
Specifies the starting channel number for the IPTV channel block. Each IPTV channel group must have a unique set of channels. Possible values range from 1 to 32000. The default value is 1.
-
-filter_mode
¶
Determines the multicast data source of the IPTV channel block. Possible values are:
include Receive multicast data only from the sources specified by -subscribed_source exclude Reject multicast data from the sources specified by -subscribed_source
The default value is include.
-
-user_source_enable
¶
Defines the source IP addresses instead of using pre-defined hosts. Possible values are true (0) and false (1). When it is set to true, source IP addresses for source-specific multicast are provided by the user. When it is set to false, source IP addresses for source-specific multicast are taken from hosts specified by the user. The default value is false.
-
-subscribed_source
¶
Specifies the source of the multicast data to which the specified filter mode is applied. To specify multicast data sources external to Spirent TestCenter, you must set user_source_enable to true.
-
-source_pool_handle
¶
Specifies the source pool handle returned from the
sth::emulation_multicast_source_config
function
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 IPTV channel block handle returned by the function, which is required
by -mode modify or delete
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::emulation_iptv_channel_block_config
function sets up IPTV channel groups
using blocks of multicast groups. Use the -mode argument to specify the action to
perform. (See the -mode argument description for information about the actions.)
Examples¶
The following examples create IPTV channel groups with -user_source_enable set to true:
# Create multicast source
set device_cfg_ret0_macstsource_1 [sth::emulation_multicast_source_config\
-ip_prefix_len 64 \
-ip_addr_start 2003::1 \
-ip_addr_step 1 \
-num_sources 1 \
-mode create\
]
set source_pool_handle_1 "[keylget device_cfg_ret0_macstsource_1 handle]"
set device_cfg_ret0_channel_block_0 [sth::emulation_iptv_channel_block_config\
-mode create\
-source_pool_handle $source_pool_handle\
-user_source_enable true \
-channel_name news \
-multicast_group_handle $muticastgroup_handle \
-filter_mode include \
-channel_start 1 \
]
Sample Output:
{handle iptvchannelblock1} {status 1}
The following example modifies the specified IPTV channel group:
set device_cfg_ret0_channel_block_1 [sth::emulation_iptv_channel_block_config\
-mode modify\
-handle $channel_block \
-channel_name music \
-multicast_group_handle $muticastgroup_handle \
-channel_start 34 \
]
Sample Output:
{status 1}
sth::emulation_iptv_channel_viewing_profile_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Creates, modifies, or deletes the IPTV viewing profiles for the channel blocks that this STB will view during the test. IPTV hosts can join channels that are specified in this profile. Multiple viewed channels can be associated with a block, and the specified channels cannot overlap.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_iptv_channel_viewing_profile_config [-mode {create|modify|delete} M] [-handle <IPTV_viewing_profile_handle>] [-channel_block <channel_block_handle>] [-channel_range_start <1-31999>] [-channel_range_end <2-32000>] [-channel_range_step <NUMERIC>] [-initial_channel_start <1-32000>] [-initial_channel_step <NUMERIC>]
Arguments¶
-
-handle
¶
Specifies the handle of the IPTV viewing profile to modify or delete. It is required when mode is modify or delete.
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are described below:
create Creates an IPTV viewing profile modify Modifies the IPTV viewing profile specified by -handle delete Deletes the IPTV viewing profile specified by -handle
-
-channel_block
¶
Specifies the channel block handle used to validate the particular IPTV viewed channel object settings. The handle is returned from the emulation_iptv_channel_block_config function.
-
-channel_range_start
¶
Specifies the starting channel for the channel viewing profile. Each channel viewing profile must have a unique set of channels in order to be used concurrently by the same host block. Possible values range from 1 to 31999. The default value is 1.
-
-channel_range_end
¶
Specifies the ending channel for the channel viewing profile. Possible values range from 2 to 32000. The default value is 32.
-
-channel_range_step
¶
Specifies the increment value for each channel in the profile. The default value is 1.
-
-initial_channel_start
¶
Specifies the first channel to be joined by the first host in the block. Possible values range from 1 to 32000. The default value is 1.
-
-initial_channel_step
¶
Specifies the increment value for each initial channel in the profile. Set this value to 0 to enable all hosts in the block to join the channel specified by -initial_channel_start. For example, if -initial_channel_start is 5 and -initial_channel_step is 3, host 1 first joins channel 5 and host 2 first joins channel 8. The default value is 1.
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 IPTV channel viewing profile handle returned by the function
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
Thesth::emulation_iptv_channel_viewing_profile_config
function creates, modifies, or deletes the IPTV viewing profiles. Use the -mode argument to specify the action to perform. (See the -mode argument description for information about the actions.)
Examples¶
The following example creates the IPTV viewing profile:
set device_cfg_ret0_viewedchannel_0 \
[sth::emulation_iptv_channel_viewing_profile_config\
-mode create\
-channel_range_step 1 \
-initial_channel_step 1 \
-channel_range_start 1 \
-initial_channel_start 1 \
-channel_range_end 32 \
-channel_block $channel_block \
]
Sample Output:
{handle iptvviewedchannels1} {status 1}
The following example modifies the specified IPTV channel viewing profile:
[sth::emulation_iptv_channel_viewing_profile_config\
-mode modify\
-handle $viewed_channel_handle1 \
-channel_range_start 34 \
-initial_channel_start 34 \
-channel_range_end 37 \
]
Sample Output:
{handle iptvviewedchannels1} {status 1}
sth::emulation_iptv_viewing_behavior_profile_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Creates, modifies, or deletes the IPTV viewing behavior profiles. A viewing behavior profile determines how a host block views a set of channels.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_iptv_viewing_behavior_profile_config [-mode {create|modify|delete} M] [-handle <IPTV_viewing_behavior_handle>] [-change_before_view <NUMERIC>] [-zap_interval <NUMERIC>] [-leave_latency_threshold <0-2000>] [-join_latency_threshold <0-30000>] [-set_top_leave_join_delay <NUMERIC>] [-view_duration <0-429496729>] [-zap_behavior {zap_only|zap_and_view}] [-zap_direction {up|down|random}] [-zap_interval_type {leave_to_leave|multicast_pkt_to_leave}]
Arguments¶
-
-handle
¶
Specifies the IPTV viewing behavior profile handle to modify or delete. It is required when the mode is modify or delete.
-
-mode
¶
Specifies the action to perform. Possible values are create, modify, or delete. This argument is Mandatory . The modes are described below:
create Creates an IPTV viewing behavior profile modify Modifies the IPTV viewing behavior profile specified by -handle delete Deletes the IPTV viewing behavior profile specified by -handle
-
-change_before_view
¶
Specifies the number of channel changes to make before stopping on the last channel. This argument is available when -zap_behavior is set to zap_and_view. The default value is 5.
-
-zap_interval
¶
Specifies the interval (in msec) between channel changes. This value must be greater than the value specified by -set_top_leave_join_delay. Specify a long interval to simulate clients changing from one channel to a specific channel. The default value is 5000.
-
-leave_latency_threshold
¶
Specifies the maximum acceptable Leave latency (in msec). If the Leave latency is greater than this threshold, the test fails. Possible values range from 0 to 30000. The default value is 3000.
-
-join_latency_threshold
¶
Specifies the maximum acceptable Join latency (in msec). If the Join latency is greater than this threshold, the test fails. Possible values range from 0 to 2000. The default value is 300.
-
-set_top_leave_join_delay
¶
Specifies the time interval (in msec) between sending a Leave message for the current channel and sending a Join message for the next channel. The default value is 0.
-
-view_duration
¶
Specifies the time duration (in seconds) to view a channel in the view phase. This argument is available when -zap_behavior is set to zap_and_view. Possible values range from 0 to 3600. The default value is 60.
-
-zap_behavior
¶
Specifies the channel changing behavior of the user. Often, this behavior includes a number of channel changes before stopping to view a channel. Possible values are:
zap_only Change channels without viewing the last channel zap_and_view Change channels a specified number of times and then view the last channel
The default value is zap_only.
-
-zap_direction
¶
Specifies the direction of channel changes when zapping. Possible values are up, down, and random. The default value is up.
-
-zap_interval_type
¶
Specifies the type of interval between channel changes. The zap interval type determines what triggers the start of the interval timer during the zap phase. Possible values are:
leave_to_leave Start timing the zap interval when a leave message is sent multicast_pkt_to_leave Start timing the zap interval when the first multicast packet for the joined channel is received
The default value is leave_to_leave.
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 IPTV viewing behavior profile handle returned by the function,
which is required for -mode modify or delete
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::emulation_iptv_viewing_behavior_profile_config
function creates,
modifies, or deletes IPTV viewing behavior profiles. Use the -mode argument
to specify the action to perform. (See the -mode argument description for
information about the actions.)
Examples¶
The following example creates the IPTV viewing behavior profile:
set device_cfg_ret0_viewbehavior_0 \ [sth::emulation_iptv_viewing_behavior_profile_config\ -mode create\ -zap_interval_type leave_to_leave \ -view_duration 60 \ -leave_latency_threshold 300 \ -zap_behavior zap_only \ -change_before_view 5 \ -zap_direction up \ -set_top_leave_join_delay 0 \ -join_latency_threshold 2000 \ -zap_interval 5000 \ ]
Sample Output:
{handle iptvviewingprofileconfig1} {status 1}
sth::emulation_iptv_control¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Starts or stops the IPTV on the specified port or device
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_iptv_control [-mode {start|stop|wait} M] [-handle <IPTV_handle_list>] [-port_handle <port_handle_list>] [-db_name <string>] [-inter_block_start_delay <NUMERIC>] [-join_fail_percentage_threshold <0-100>] [-test_env {testing_env|real_world_env}] [-test_name <string>] [-test_duration <0-429496729>] [-test_type {channel_zapping_test|channel_verification_test}] [-udp_port <NUMERIC>] [-udp_port_filter {source|destination}] [-vlan_sub_filter_type {outter|inner}]
Arguments¶
-
-handle
¶
A list of IPTV configuration handles returned from the emulation_iptv_config function
-
-port_handle
¶
Specifies a list of ports on which to perform the action
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are:
start Starts IPTV on the specified port or device stop Stops IPTV on the specified port or device wait Waits for a specified duration (-test_duration) and stops IPTV automatically
-
-db_name
¶
Specifies the file name for the end-of-test (EOT) database in which results are stored. The file name is only applicable for interactive tests. For tests run via the Command Sequencer, an automatically generated file name will be used. The default value is iptvTest.db.
-
-inter_block_start_delay
¶
Specifies the starting delay (in msec) for the STB block. The default value is 0.
-
-join_fail_percentage_threshold
¶
Specifies the Join/Fail percentage threshold. If the number of failed Joins divided by the total number of channel changes is greater than this percentage, the IPTV test event fails. A failed Join occurs when a Join message is sent and the corresponding channel data is not received within a certain time period. Set this percentage to 100 for the event to pass regardless of the number of failed Joins. The default value is 100.
-
-test_env
¶
Specifies the type of the source side traffic. Possible values are:
testing_env Testing environment (The traffic sources are set up in the test using Spirent TestCenter.) real_world_env Real world environment (The traffic is generated from a non-Spirent TestCenter source.) The default value is testing_env.
-
-test_name
¶
Specifies the user-defined test name. The default value is IptvTest.
-
-test_duration
¶
Specifies the duration (in seconds) that the test runs. Possible values range from 0 to 429496729. The default value is 300.
-
-test_type
¶
Specifies the type of the IPTV testing scenario. Possible values are:
channel_zapping_test Channel zapping test channel_verification_test Channel verification test
The default value is channel_verification_test.
-
-udp_port
¶
Specifies the number of the port on which packets are filtered. The default value is 3357.
-
-udp_port_filter
¶
Specifies whether to filter on the source or the destination UDP port. This argument is available when -test_env is set to testing_env. Possible values are source and destination. The default value is source.
-
-vlan_sub_filter_type
¶
Specifies the VLAN sub-filter type. For ports with PPP and VLAN stacking enabled, one sub-filter is dedicated to the PPP session ID while the other sub-filter can be used for either outer VLAN ID or inner VLAN ID. Possible values are:
outer Filters the hosts on the outer VLAN ID inner Filters the IGMP/MLD hosts based on the inner VLAN ID
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 sth::emulation_iptv_control
function starts or stops the emulated IPTV
protocol. Use the -mode argument to specify the action to perform. (See
the -mode argument description for information about the actions.)
If the action performed fails, Spirent HLTAPI returns an error message.
Examples¶
Sample Input:
set ctrl_ret [sth::emulation_iptv_control\
-mode start\
-handle "$iptv_handle1 $iptv_handle2" \
-test_env testing_env\
-test_duration 20\
-test_type channel_verification_test]
Sample Output:
{status 1}
Sample Input:
set ctrl_ret [sth::emulation_iptv_control\
-port_handle $port2\
-mode wait]
Sample Output:
{status 1}
sth::emulation_iptv_stats¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Returns results about the emulated IPTV protocol
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_iptv_stats [-mode {set_top_box|viewing_profile|channel|port|test} M] [-handle <device_handle>] [-port_handle <port_handle>]
Arguments¶
-
-handle
¶
Specifies the device handle from which to get the result. This argument is required when the mode is set_top_box, viewing_profile, channel, or port.
-
-port_handle
¶
Specifies the port handle from which to get the result. This argument is required when the mode is set_top_box, viewing_profile, channel, or port.
-
-mode
¶
Specifies the type of IPTV results to get. This argument is Mandatory . Possible values are described below:
set_top_box Results for the STB viewing_profile Results aggregated on the viewing profile channel Results aggregated on the block of viewed channels port Results aggregated at port level test Overall test results
Note
When the mode is set_top_box, either handle or port_handle is required
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 are returned when the mode is set_top_box:
- set_top_box.<device handle>.profile_name
- Descriptive name for STB profile
- set_top_box.<device handle>.min_join_latency
- Minimum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- set_top_box.<device handle>.min_gap_latency
- Minimum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel. This time is measured only when the original multicast stream ceases prior to the receipt of the newly joined multicast stream.
- set_top_box.<device handle>.min_multicast_to_leave_interval
- Minimum time interval (in msec) between the multicast packet received for a channel and the following Leave message for that channel.
- set_top_box.<device handle>.min_overlap_latency
- Minimum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- set_top_box.<device handle>.join_latency_threshold
- Maximum acceptable Join latency (in msec)
- set_top_box.<device handle>.max_join_latency
- Maximum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- set_top_box.<device handle>.avg_join_latency
- Average length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- set_top_box.<device handle>.max_gap_latency
- Maximum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- set_top_box.<device handle>.avg_gap_latency
- Average length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- set_top_box.<device handle>.total_pkts
- Total number of packets received
- set_top_box.<device handle>.max_multicast_to_leave_interval
- Maximum time interval (in msec) between the multicast packet received for a channel and the following Leave message for that channel
- set_top_box.<device handle>.avg_multicast_to_leave_interval
- Average time interval (in msec) between the multicast packet received for a channel and the following Leave message for that channel
- set_top_box.<device handle>.min_leave_join_delay
- Minimum length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- set_top_box.<device handle>.avg_overlap_latency
- Average length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- set_top_box.<device handle>.max_overlap_latency
- Maximum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- set_top_box.<device handle>.max_leave_join_delay
- Maximum time (in msec) to send a Join message for a channel after sending a Leave message for the previous channel
- set_top_box.<device handle>.avg_leave_join_delay
- Average time in msec to send a Join message for a channel after sending a Leave message for the previous channel
- set_top_box.<device handle>.min_leave_latency
- Minimum length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- set_top_box.<device handle>.prbs_error_count
- Total number of pseudo-random binary sequence errors aggregated on the block of STBs
- set_top_box.<device handle>.late_frame_count
- Total number of late packets aggregated on the block of STBs
- set_top_box.<device handle>.dropped_frame_count
- Total number of packets lost in transit aggregated on the block of STBs
- set_top_box.<device handle>.channel_changes_num
- Number of channel changes in the test
- set_top_box.<device handle>.min_change_latency
- Minimum length of time (in msec) it took from when the Leave message was sent for the previous channel to when the first data packet was received for the next channel, for STBs in this STB block
- set_top_box.<device handle>.max_leave_latency
- Maximum length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- set_top_box.<device handle>.avg_leave_latency
- Average length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- set_top_box.<device handle>.clients_num
- Number of clients
- set_top_box.<device handle>.errored_streams
- Number of errored streams received
- set_top_box.<device handle>.flagged_leaves
- Total number of Leaves for which the host was still receiving multicast channel data after the Leave latency threshold was reached.
- set_top_box.<device handle>.recorded_frame_count
- Total number of packets re-ordered aggregated on the block of STBs
- set_top_box.<device handle>.min_leave_to_leave_interval
- Minimum time interval (in msec) between two consecutive Leave messages
- set_top_box.<device handle>.join_failures
- After a Leave message is sent, Spirent TestCenter waits for a finite period of time and then polls the Analyzer for the last multicast packet for the channel. If no multicast packets for that channel were received, the Join failures count is incremented.
- set_top_box.<device handle>.max_change_latency
- Maximum length of time (in msec) it took from when the Leave message was sent for the previous channel to when the first data packet was received for the next channel, for STBs in this STB block.
- set_top_box.<device handle>.avg_change_latency
- Average length of time (in msec) it took from when the Leave message was sent for the previous channel to when the first data packet was received for the next channel, for STBs in this STB block.
- set_top_box.<device handle>.max_leave_to_leave_interval
- Maximum time interval (in msec) between two consecutive Leave messages
- set_top_box.<device handle>.avg_leave_to_leave_interval
- Average time interval (in msec) between two consecutive Leave messages.
- set_top_box.<device handle>.flagged_joins
- Total number of Joins for which multicast channel data was not received within the Join latency threshold
- set_top_box.<device handle>.duplicate_frame_count
- Total number of duplicate packets aggregated on the block of STBs
- set_top_box.<device handle>.total_pkt_rate
- Total packet receive rate (in packets/sec)
- set_top_box.<device handle>.duplicate_joins
- Number of times that a Join message was sent for a channel for which multicast packets were already being received
The following are returned when the mode is viewing_profile:
- viewing_profile.<iptv view profile handle>.min_join_latency
- Minimum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- viewing_profile.<iptv view profile handle>.min_gap_latency
- Minimum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- viewing_profile.<iptv view profile handle>.min_overlap_latency
- Minimum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel stream
- viewing_profile.<iptv view profile handle>.max_join_latency
- Maximum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- viewing_profile.<iptv view profile handle>.avg_join_latency
- Average length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- viewing_profile.<iptv view profile handle>.avg_gap_latency
- Average length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- viewing_profile.<iptv view profile handle>.max_gap_latency
- Maximum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- viewing_profile.<iptv view profile handle>.total_pkts
- Total number of packets received
- viewing_profile.<iptv view profile handle>.avg_overlap_latency
- Average length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- viewing_profile.<iptv view profile handle>.max_overlap_latency
- Maximum length of time (in msec) between when the last multicast packet for a channel is received (for which a Leave message was sent) and the receipt of the first multicast packet for the newly joined channel
- viewing_profile.<iptv view profile handle>.min_leave_latency
- Minimum length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- viewing_profile.<iptv view profile handle>.prbs_error_count
- Total number of pseudo-random binary sequence errors aggregated on the viewing profile block
- viewing_profile.<iptv view profile handle>.late_frame_count
- Total number of late packets aggregated on the viewing profile block
- viewing_profile.<iptv view profile handle>.dropped_frame_count
- Total number of packets lost in transit aggregated on the viewing profile block
- viewing_profile.<iptv view profile handle>.channel_changes_num
- Number of channel changes in the test
- viewing_profile.<iptv view profile handle>.min_change_latency
- Minimum length of time (in msec) it took from when the Leave message was sent for the previous channel to when the first data packet was received for the current channel
- viewing_profile.<iptv view profile handle>.max_leave_latency
- Maximum length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- viewing_profile.<iptv view profile handle>.avg_leave_latency
- Average length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- viewing_profile.<iptv view profile handle>.errored_streams
- Number of errored streams received
- viewing_profile.<iptv view profile handle>.recorded_frame_count
- Total number of packets re-ordered aggregated on the viewing profile block
- viewing_profile.<iptv view profile handle>.join_failures
- After a Leave message is sent, Spirent TestCenter waits for a finite period of time and then polls the Analyzer for the last multicast packet for the channel. If no multicast packets for that channel were received, the Join failures count is incremented
- viewing_profile.<iptv view profile handle>.max_change_latency
- Maximum length of time (in msec) it took from when the Leave message was sent for the previous channel to when the first data packet was received for the current channel
- viewing_profile.<iptv view profile handle>.avg_change_latency
- Average length of time (in msec) it took from when the Leave message was sent for the previous channel to when the first data packet was received for the next channel
- viewing_profile.<iptv view profile handle>.duplicate_frame_count
- Total number of duplicate packets aggregated on the viewing profile block
- viewing_profile.<iptv view profile handle>.total_pkt_rate
- Total packet receive rate (in packets/sec)
- viewing_profile.<iptv view profile handle>.duplicate_joins
- Number of times that a Join message was sent for a channel for which multicast packets were already being received
- viewing_profile.<iptv view profile handle>.name
- The name of the iptvIPTV viewing profile
The following are returned when the mode is channel:
- channel.<iptv viewed channels handle>.channel_num
- Number of channels in the profile
- channel.<iptv viewed channels handle>.channel_name
- Name of the viewed channels profile
- channel.<iptv viewed channels handle>.min_join_latency
- Minimum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- channel.<iptv viewed channels handle>.avg_join_latency
- Average length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- channel.<iptv viewed channels handle>.max_join_latency
- Maximum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- channel.<iptv viewed channels handle>.total_pkts
- Total packets received in the multicast and/or unicast streams, aggregated on the viewed channel block
- channel.<iptv viewed channels handle>.min_leave_latency
- Minimum length of time (in msec) it took to receive data on a channel after the first Join message for that channel was sent
- channel.<iptv viewed channels handle>.prbs_error_count
- Total number of pseudo-random binary sequence errors, aggregated on the viewed channel block
- channel.<iptv viewed channels handle>.late_frame_count
- Total number of late packets, aggregated on the viewed channel block
- channel.<iptv viewed channels handle>.dropped_frame_count
- Total number of packets lost in transit, aggregated on the viewed channel block
- channel.<iptv viewed channels handle>.channel_changes_num
- Number of channel changes in the test
- channel.<iptv viewed channels handle>.errored_streams
- Number of errored streams received
- channel.<iptv viewed channels handle>.avg_leave_latency
- Average length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- channel.<iptv viewed channels handle>.max_leave_latency
- Maximum length of time (in msec) it took to stop receiving data on a channel after the first Leave message for that channel was sent
- channel.<iptv viewed channels handle>.recorded_frame_count
- Total number of packets re-ordered, aggregated on the viewed channel block
- channel.<iptv viewed channels handle>.join_failures
- After a Leave message is sent, Spirent TestCenter waits for a finite period of time and then polls the Analyzer for the last multicast packet for the channel. If no multicast packets for that channel were received, the Join failures count is incremented
- channel.<iptv viewed channels handle>.duplicate_frame_count
- Total number of duplicate packets, aggregated on the viewed channel block
- channel.<iptv viewed channels handle>.total_pkt_rate
- Total packet receive rate (in packets/sec)
- channel.<iptv viewed channels handle>.duplicate_joins
- Number of times that a Join message was sent for a channel for which multicast packets were already being received
- channel.<iptv viewed channels handle>.name
- The name of the iptv IPTV vieweds channel
The following are returned when the mode is port:
- port.<port handle>.late_frame_count
- Total number of late packets received aggregated on the port
- port.<port handle>.dropped_frame_count
- Total number of dropped (lost) frames for the port
- port.<port handle>.total_pkt_rate
- Total packet receive rate (in packets/sec)
- port.<port handle>.total_pkts
- Total number of packets received for the port
- port.<port handle>.duplicate_frame_count
- Total number of duplicate packets received aggregated on the port
- port.<port handle>.recorded_frame_count
- Total number of packets recorded aggregated on the port
- port.<port handle>.prbs_error_count
- Total number of pseudo-random binary sequence errors for the port
- port.<port handle>.name
- The name of the port
The following are returned when the mode is test:
- test.test_result
Overall result of the test based on the percentage of failed Joins compared to the Join fail threshold given as input. Possible values are:
FAIL Percentage of Join fails exceeds the specified Join fail threshold PASS Percentage of Join fails is lower than the threshold NA Test result is not available (because a test has not started or is still running)
Description¶
The sth::emulation_iptv_stats
function provides information about IPTV. Use -mode
to specify the information retrieval mode.
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). 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¶
The following example returns IPTV results when -mode is set to set_top_box:
set results1 [sth::emulation_iptv_stats\
-mode set_top_box \
-handle "$device_created $device_created1" ]
Sample Output:
{set_top_box {{host1 {{profile_name {iptvViewingProfileConfig 1}}
{min_join_latency 0} {min_gap_latency 0} {min_multicast_to_leave_interval 0}
{min_overlap_latency 4987.38747} {join_latency_threshold 2000}
{max_join_latency 0} {avg_join_latency 0} {max_gap_latency 0}
{avg_gap_latency 0} {total_pkts 7176232} {max_multicast_to_leave_interval 0}
{avg_multicast_to_leave_interval 0} {min_leave_join_delay 4.83696}
{avg_overlap_latency 10023.4262933333} {max_overlap_latency 15018.16503}
{max_leave_join_delay 10.49286} {avg_leave_join_delay 6.86129366666667}
{min_leave_latency 2923.19657} {prbs_error_count 0} {late_frame_count 0}
{dropped_frame_count 0} {channel_changes_num 40} {min_change_latency 0}
{max_leave_latency 3625.77371} {avg_leave_latency 3076.03516615385}
{clients_num 10} {errored_streams 0} {flagged_leaves 13}
{recorded_frame_count 0} {min_leave_to_leave_interval 4961.28924}
{join_failures 0} {max_change_latency 0} {avg_change_latency 0}
{max_leave_to_leave_interval 5025.05328} {avg_leave_to_leave_interval
4997.619397} {flagged_joins 0} {duplicate_frame_count 0} {total_pkt_rate
13226.433889758} {duplicate_joins 13}{name IptvHost1}}} {host2 {{profile_name
{iptvViewingProfileConfig 2}} {min_join_latency 0} {min_gap_latency 0}
{min_multicast_to_leave_interval 0} {min_overlap_latency 0}
{join_latency_threshold 1000} {max_join_latency 0} {avg_join_latency 0}
{max_gap_latency 0} {avg_gap_latency 0} {total_pkts 86011904}
{max_multicast_to_leave_interval 0} {avg_multicast_to_leave_interval 0}
{min_leave_join_delay 2.27212} {avg_overlap_latency 0} {max_overlap_latency
0} {max_leave_join_delay 13.67229} {avg_leave_join_delay 5.64751388888889}
{min_leave_latency 1432.51942} {prbs_error_count 0} {late_frame_count 0}
{dropped_frame_count 0} {channel_changes_num 100} {min_change_latency 0}
{max_leave_latency 1434.86534} {avg_leave_latency 1433.69238} {clients_num
10} {errored_streams 0} {flagged_leaves 2} {recorded_frame_count 0}
{min_leave_to_leave_interval 1964.02912} {join_failures 0}
{max_change_latency 0} {avg_change_latency 0} {max_leave_to_leave_interval
2033.07348} {avg_leave_to_leave_interval 1999.96820377778} {flagged_joins 0}
{duplicate_frame_count 0} {total_pkt_rate 77749.0058126303} {duplicate_joins
2}{name IptvHost2}}}}} {status 1}
The following example returns IPTV results when -mode is set to viewing_profile:
set results2 [sth::emulation_iptv_stats\
-port_handle $port2\
-mode viewing_profile]
Sample Output:
{viewing_profile {{iptvviewingprofileconfig1 {{min_join_latency 0}
{min_gap_latency 0} {min_overlap_latency 4987.38747} {max_join_latency 0}
{avg_join_latency 0} {avg_gap_latency 0} {max_gap_latency 0} {total_pkts
7176232} {avg_overlap_latency 10023.4262933333} {max_overlap_latency
15018.16503} {min_leave_latency 2923.19657} {prbs_error_count 0}
{late_frame_count 0} {dropped_frame_count 0} {channel_changes_num 40}
{min_change_latency 0} {max_leave_latency 3625.77371} {avg_leave_latency
3076.03516615385} {errored_streams 0} {recorded_frame_count 0} {join_failures
0} {max_change_latency 0} {avg_change_latency 0} {duplicate_frame_count 0}
{total_pkt_rate 13226.433889758} {duplicate_joins 13}{name{ iptvViewingProfileConfig 1}}}}
{iptvviewingprofileconfig2 {{min_join_latency 0} {min_gap_latency 0}
{min_overlap_latency 0} {max_join_latency 0} {avg_join_latency 0}
{avg_gap_latency 0} {max_gap_latency 0} {total_pkts 86011904}
{avg_overlap_latency 0} {max_overlap_latency 0} {min_leave_latency
1432.51942} {prbs_error_count 0} {late_frame_count 0} {dropped_frame_count 0}
{channel_changes_num 100} {min_change_latency 0} {max_leave_latency
1434.86534} {avg_leave_latency 1433.69238} {errored_streams 0}
{recorded_frame_count 0} {join_failures 0} {max_change_latency 0}
{avg_change_latency 0} {duplicate_frame_count 0} {total_pkt_rate
77749.0058126303} {duplicate_joins 2}{name{ iptvViewingProfileConfig 2}}}}}} {status 1}
The following example returns IPTV results when -mode is set to port:
set results4 [sth::emulation_iptv_stats\
-port_handle $port2\
-mode port]
Sample Output:
{port {{port2 {{prbs_error_count 0} {late_frame_count 0} {dropped_frame_count
0} {total_pkt_rate 82227.520193803} {total_pkts 490580833}
{duplicate_frame_count 0} {recorded_frame_count 0}{name {10.61.39.164-8-2
//8/2}}}}}} {status 1}