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}