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

The sth::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}