IPTV Functions

emulation iptv config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

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 settop boxes per port. It can be used to identify the minimum, average, and maximum time required to change channels per settop 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 the argument is `Mandatory`.

   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 endof-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 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
                ``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 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 emulation iptv channel viewing profile config and 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 [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 [emulation iptv config
       mode=                                         modify
       handle=                                       $device_created
       save_time_stamps_enable=                      true
       inter_client_start_delay_step=                10 ]

Sample Output:

{status 1}

emulation iptv channel block config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

Spirent Extension (for Spirent HLTAPI only).

Sets up IPTV channel groups using blocks of multicast groups

Synopsis:

Note: M indicates the argument is `Mandatory`.
      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
                ``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
                predefined hosts. Possible values are true (0) and false (1).
                When it is set to true, source IP addresses for sourcespecific
                multicast are provided by the user. When it is set to false,
                source IP addresses for sourcespecific 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
                ``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 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 [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 [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 [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}

emulation iptv channel viewing profile config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

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 the argument is `Mandatory`.

     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 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
   [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:

[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}

emulation iptv viewing behavior profile config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

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 the argument is `Mandatory`.

         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 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
[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}

emulation iptv control

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

Spirent Extension (for Spirent HLTAPI only).

Starts or stops the IPTV on the specified port or device

Synopsis:

Note: M indicates the argument is `Mandatory`.

       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 endof-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 nonSpirent TestCenter source.)

                 The default value is testing_env.

test_name
                Specifies the userdefined 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 subfilter type. For ports with PPP and VLAN
                stacking enabled, one subfilter is dedicated to the PPP session
                ID while the other subfilter 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 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 [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 [emulation iptv control
            port_handle=  $port2
            mode=    wait]

Sample Output:

{status 1}

emulation iptv stats

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

Spirent Extension (for Spirent HLTAPI only).

Returns results about the emulated IPTV protocol

Synopsis:

Note: M indicates the argument is `Mandatory`.

    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 pseudorandom 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 reordered 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 pseudorandom 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 reordered 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 pseudorandom 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 reordered, 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 pseudorandom 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 emulation iptv stats 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 [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 [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 [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.16482=
//8/2}}}}}} {status 1}