Below is the list of test cases implemented as part of CORD Tester project to test ONOS igmp proxy module.

ID

Title

Function Name

Test steps

Expected Result

Actual Result

Igmpproxy_1

verify igmp proxy app installation in onos

test_igmpproxy_app_installation_in_onos

Install igmp proxy and its dependent apps in onos

Igmp proxy app installation in onos should success

 

Igmpproxy_2

verify configuring igmp proxy app in onos

test_igmpproxy_app_configuration_in_onos

config igmp proxy parameters in onos

Igmp proxy app configuration in onos should success

 

Igmpproxy_3

verify igmp proxy app forwards subscriber join onto proxy interface

test_igmpproxy_for_first_join

  1. from subscriber send igmp join
  2. verify proxy forwards the join to proxy interface  

proxy app should forward the join packet onto proxy interface

 

Igmpproxy_4

verify igmp proxy with multiple connect points

test_igmpproxy_for_first_join_with_multiple_connect_points

verify igmp proxy allows only one connect point configuration

proxy app should not allow more than one connect point configuration

 

Igmpproxy_5

verify igmp proxy for multiple igmp groups

test_igmpproxy_for_two_joins_with_different_igmp_groups

  1. send igmp joins  for two groups from  a subscriber
  2. verify proxy forwards two joins onto proxy interface

proxy app should forward the join packet onto proxy interface

 

Igmpproxy_6

verify igmp proxy with app deactivate

test_igmpproxy_for_igmp_join_with_proxy_app_deactivate

  1. deactivate igmp proxy app
  2. send igmp join from subscriber

proxy app should not forward the join packet onto proxy interface

 

Igmpproxy_7

verify igmp proxy with mcast app deactivate

test_igmpproxy_for_igmp_join_with_mcast_app_deactivate

1.deactivate igmp proxy app

2.send igmp join from subscriber

proxy app should not forward the join packet onto proxy interface

 

Igmpproxy_8

verify igmp proxy with connect toggle

test_igmpproxy_for_igmp_join_when_connect_point_toggles

1.send igmp join from subscriber

2.verify proxy forwards the join onto proxy interface  

proxy app should forward the join packet onto proxy interface

 

Igmpproxy_9

verify proxy app forwards igmp join onto to new connect point

test_igmpproxy_forwards_already_registered_igmp_join_onto_changed_connect_point

1.send igmp join from subscriber

2.change connect point

3. verify proxy forwards the join onto changed connect point

proxy app should forward the join packet onto changed proxy interface

 

Igmpproxy_10

verify proxy app when connect point changes

test_igmpproxy_for_igmp_join_when_connect_point_changes_after_first_join

1. send igmp join from subscriber

2.change connect point

3. send one more join for other group 4.verify proxy forwards the join onto changed connect point

proxy app should forward the join packet onto changed proxy interface

 

Igmpproxy_11

verify if igmp proxy forwards igmp join onto non proxy interface

test_igmpproxy_for_igmp_joins_on_non_proxy_interface

1.send igmp join from subscriber

2.verify proxy don’t forward the join onto non-proxy interfaces

proxy app should not forward the join packet onto non proxy interface

 

Igmpproxy_12

verify proxy sends group specific query when received from subscriber

test_igmpproxy_sends_group_specific_query_when_received_igmp_leave

1.send igmp join from subscriber

2.send leave to the joined group

3.verify proxy sends group specific query

proxy app should send group specific query when leave received from subscriber

 

Igmpproxy_13

verify proxy sends group specific query when received from subscriber after changing connect point

test_igmpproxy_sends_group_specific_query_when_received_igmp_leave_changing_connect_point_after_join_sent

1.send igmp join from subscriber

2.change connect point

3.send leave to the joined group

4.verify proxy sends group specific query

proxy app should send group specific query when leave received from subscriber

 

Igmpproxy_14

verify proxy app sends group specific query when two subscribers leaves same igmp group one after other

test_igmpproxy_verify_group_specific_query_sent_when_two_subscribers_leave_same_multicast_group_one_after_other

1.send igmp join from two subscribers for same group

2.send leave for joined group one after another

proxy app should send group specific query when leave received from each subscriber

 

Igmpproxy_15

verify proxy app sends group specific query for all the groups subscriber leaves

test_igmpproxy_verify_group_specific_query_sent_for_all_the_groups_subscriber_leaves

1.send igmp join for multiple groups

2.send leave to all joined groups

3.verify proxy sends group specific query  

proxy app should send group specific query when leave received from subscriber for all the groups

 

Igmpproxy_16

verify igmp proxy fast leave

test_igmpproxy_enable_fast_leave

verify no group specific query sent when fast leave enabled  

proxy app should not send group specific query when leave received from subscriber if fast leave enabled

 

Igmpproxy_17

verify igmp proxy for same igmp join with different sources

test_igmpproxy_for_igmp_join_for_same_group_with_different_source

1.send igmp joins for same with different source

proxy app should forward the join onto proxy interface only once irrespective of no.of joins received

 

Igmpproxy_18

verify proxy functionality when proxy interface toggles

test_igmpproxy_after_proxy_interface_toggles

1.send igmp join from subscriber

2.toggle proxy interface

proxy app should forward the join packet onto proxy interface

 

Igmpproxy_19

verify proxy functionality when subscriber interface toggles

test_igmpproxy_after_subscriber_interface_toggles

1.send igmp join from subscriber

2.toggle subscriber interface

proxy app should forward the join packet onto proxy interface

 

Igmpproxy_20

verify proxy functionality when channel distributor link toggles

test_igmpproxy_after_channel_distributor_link_toggles_verify_traffic

1.send igmp join from subscriber

2.channel distributor interface

proxy app should forward the data traffic when channel distributor interface active

 

Igmpproxy_21

verify igmp proxy functionality with data traffic

test_igmpproxy_with_join_and_verify_traffic

1.send igmp join from subscriber

2.send traffic to joined group

proxy app should forward the data traffic when received from source

 

Igmpproxy_22

verify igmp proxy with data traffic for two subscribers join same group

test_igmpproxy_two_subscribers_join_same_igmp_group_verify_traffic

1.send igmp join for same group from two subscribers

2.send traffic to group

proxy app should forward the data traffic to two subscribers when received from source

 

Igmpproxy_23

verify igmp proxy with data traffic for two subscribers join different group

test_igmpproxy_two_subscribers_join_different_igmp_group_verify_traffic

3.send igmp join for two  groups from two subscribers

2.send traffic to groups

proxy app should forward the data traffic when received to corresponding group

 

Igmpproxy_24

verify igmp proxy with data traffic while connect changes

test_igmpproxy_for_connect_point_changes_while_data_traffic_running

1.send igmp join from a subscriber

2. change connect point 3. send traffic to group

proxy app should forward the data traffic when received from source

 

Igmpproxy_25

verify only joined subscriber receives data traffic

test_igmpproxy_igmp_group_joined_subscriber_only_receives_data_traffic_verify_traffic

1. send igmp join from a subscriber

2. send traffic to group

proxy app should forward the data traffic to joined subscriber only

 

Igmpproxy_26

verify only joined group receives data traffic

test_igmpproxy_subscriber_receives_data_traffic_only_for_joined_groups

1.send igmp join from a subscriber

2. send traffic to group

proxy app should forward the data traffic for joined groups only

 

Igmpproxy_27

verify igmp proxy functionality after onos restart

test_igmpproxy_subscriber_receives_data_traffic_after_onos_restartr

1.send igmp join from a subscriber

  1. send traffic to group
  2. restart onos

proxy app should forward the data traffic when received

 

Igmpproxy_28

verify igmp proxy data traffic when source connected to proxy interface

test_igmpproxy_subscriber_receives_igmp_data_traffic_when_source_connected_on_connect_point_interface

1.send igmp join from a subscriber

2. send traffic to group

proxy app should forward the data traffic when received

 

Igmpproxy_29

verify igmp proxy if join received on proxy interface

test_igmpproxy_igmp_joins_received_on_proxy_interface_cant_be_processed_verify_traffic

1.send igmp join from a subscriber on connect point interface

2. send traffic to group

proxy should not process join packets received on proxy interface

 

Igmpproxy_30

verify igmp proxy subscriber leaves group

test_igmpproxy_with_leave_and_verify_traffic

1.send igmp join from a subscriber

2. send leave to the group 3.send traffic to group

proxy app should not forward the data traffic to subscriber after receiving leave

 

Igmpproxy_31

verify igmp proxy data traffic for non joined group

test_igmpproxy_data_traffic_for_non_joined_group

1.send igmp join from a subscriber

2. send traffic to non-registered group

proxy app should forward  data traffic to registered groups only

 

Igmpproxy_32

verify igmp proxy for join and leave loop

test_igmpproxy_with_leave_and_join_loop

1.send igmp join and leave multiple times

proxy app should process leave and join requests received multiple times for same groups

 

Igmpproxy_33

verify igmp group join latency for 1 group

test_igmpproxy_with_1group_join_latency

1.send igmp join from a subscriber

Calculate latency of one igmp join

 

Igmpproxy_34

verify igmp group join latency for 2 group

test_igmpproxy_with_2group_join_latency

1.send two igmp joins from a subscriber

Calculate latency of two igmp joins

 

Igmpproxy_35

verify igmp group join latency for multiple group

test_igmpproxy_with_Ngroup_join_latency

1.send multiple igmp joins from a subscriber

Calculate latency of multiple  igmp joins

 

Igmpproxy_36

verify igmp groups join rover

test_igmpproxy_with_join_rover

1.send igmp joins from a subscriber for a range of multicast addresses

subscriber should be able to join all valid multicast groups

 

Igmpproxy_37

verfiy igmp proxy sends periodic queries onto subscriber interface  

test_igmpproxy_sends_periodic_general_query_on_subscriber_connected_segment

1.send igmp join from a subscriber

proxy app should send periodic general queries onto subscriber connected interfaces

 

Igmpproxy_38

verfiy igmp proxy sends periodic queries onto proxy interface

test_igmpproxy_not_sends_periodic_general_query_on_proxy_connected_interface

1.send igmp join from a subscriber

proxy app should not send periodic general queries onto  connect point interface

 

Igmpproxy_39

verify one subscriber joins n leaves two groups

test_igmpproxy_two_joins_one_leave_from_same_subscriber_verify_traffic

1.send igmp two joins from a subscribers for two groups

2.send leave for one group

subscriber should not receive data traffic for left groups

 

Igmpproxy_40

verify two subscribers joins a group and one subscriber goes down

test_igmpproxy_two_subscribers_joins_igmp_group_one_subscriber_goes_down_verify_traffic

1.send igmp joins from two subscribers

2.shutdown one subscriber

The active subscriber should receive data traffic irrespective of status of other subscriber

 

Igmpproxy_41

verify two subscribers joins two groups and one subscriber leaves

test_igmpproxy_two_subscribers_joins_different_igmp_groups_one_subscriber_leaves_verify_traffic

1.send igmp joins form two subscribers

2.send leave from one subscriber

 

The active subscriber should receive data traffic irrespective of status of other subscriber

 

Igmpproxy_42

verify two subscribers joins same group and one subscriber leaves fast leave enabled

test_igmpproxy_two_subscribers_joins_same_igmp_group_one_subscriber_leaves_fast_leave_enabled_verify_traffic

1.send igmp joins form two subscribers for same group

2.send leave from one subscriber

proxy app should not send group specific query when leave received  and if fast leave enabled

 

Igmpproxy_43

verify igmp proxy data traffic when source connected to proxy interface

test_igmpproxy_multicast_source_connected_on_proxy_connected_interface

1.send igmp join from a subscriber

2. send traffic to group

proxy app should forward data traffic to subscriber interface

 

Igmpproxy_44

verify igmp data traffic for subscriber joined with exclude record type

test_igmpproxy_drops_multicast_traffic_for_exclude_record_type_group

1.send igmp join with exclude record type

2.send traffic to the group

proxy app should not forward data traffic to subscriber interface

 

Igmpproxy_45

verify igmp data traffic for subscriber joined with exclude record type

test_igmpproxy_drops_multicast_traffic_for_exclude_record_type_with_empty_source_list

3.send igmp join with exclude record type

2.send traffic to the group

proxy app should forward data traffic to subscriber interface

 

Igmpproxy_46

verify igmp proxy for inlcude and exclude record types

test_igmpproxy_two_subscriber_joins_include_and_exclude_mode_record_types_verify_traffic

1.send igmp joins from two subscribers with include and exclude record types
2.send traffic to two groups

proxy app should forward data traffic to subscriber with include mode join sent

 

Igmpproxy_47

igmp proxy for inlcude and exclude record types verify traffic

test_igmpproxy_subscriber_joins_include_and_exclude_mode_record_types_verify_traffic

1.send igmp join with include and exclude record types

2.send data traffic to the groups

 

proxy app should forward data traffic to subscriber with include mode join sent

 

Igmpproxy_48

verify subscriber changes record type from exclude to include mode

test_igmpproxy_subscriber_join_type_chnage_from_exclude_to_to_include_verify_traffic

1.send igmp join with exclude  type record type

2.send igmp join to change record type to include mode

3.send traffic  

proxy app should forward data traffic to subscriber after record type changed to include mode only

 

Igmpproxy_49

verify igmp proxy for allow new sources  record types

test_igmpproxy_allow_new_sources_mode_record_type_verify_traffic

1.send igmp join from a subscriber

2.send igmp join to add more sources

3.send traffic

proxy app should forward the allowed sources information to upstream multicast router

 

Igmpproxy_50

verify igmp proxy for black old sources  record types

test_igmpproxy_block_old_sources_mode_record_type_verify_traffic

1.send igmp join from a subscriber

2.send igmp join to block old sources  

3.send traffic

proxy app should forward the blocked sources information to upstream multicast router

 

Igmpproxy_51

verify subscriber sends join with 0.0.0.0 source ip

test_igmpproxy_with_subscriber_source_ip_0_0_0_0_verify_traffic

1.send igmp join with 0.0.0.0 source ip

2.send traffic to the group

subscriber should be able join igmp group

 

Igmpproxy_52

verify igmp join for invalid multicast address

test_igmpproxy_for_invalid_multicast_group_address_verify_traffic

1.send igmp join to invalid multicast group address

 

 

 

Igmpproxy_53

verify igmp proxy on onos cluster setup

test_igmpproxy_for_first_join_verify_traffic_on_onos_cluster_setup

1.send igmp join from a subscriber

proxy app should forward the data traffic to subscriber received  from source

 

Igmpproxy_54

verify igmp proxy on onos cluster setup when cluster master changed

test_igmpproxy_verify_igmp_data_traffic_after_cluster_master_change

1.send igmp join from a subscriber

2.change cluster master

3.send traffic to the group

proxy app should forward the data traffic to subscriber received  from source

 

Igmpproxy_55

verify igmp proxy for igmp leave on onos cluster setup when master changed

test_igmpproxy_verify_proxy_sends_group_specific_query_when_leave_received_after_cluster_master_change

1.send igmp join from a subscriber

2.change cluster master

3.send leave to the group

proxy app should send group specific query when leave received

 

Igmpproxy_56

verify igmp proxy for igmp leave on onos cluster setup when member restarted

test_igmpproxy_verify_proxy_sends_group_specific_query_when_leave_received_after_cluster_member_restart

send igmp join from a subscriber

2.restart cluster member 3.send leave to the group

proxy app should send group specific query when leave received

 

Igmpproxy_57

verify igmp data traffic  while cluster restart

test_igmpproxy_verify_igmp_data_traffic_while_cluster_restart

1.send igmp join

2.send data traffic to the group

3.restart cluster

subscriber should not receive data traffic after cluster restart

 

Igmpproxy_58

verify new subscriber joined same group after clusrer master restart

test_igmpproxy_one_more_subscriber_joined_same_group_after_cluster_master_restart

1.send igmp join from a subscriber

2.restart cluster master

3.send igmp join to the  same group from another subscriber

4.send traffic to the group

Another subscriber should be able to join after cluster master restart

 

Igmpproxy_59

verify subscriber receives data traffic while radius server restart

test_igmpproxy_subscriber_receives_data_traffic_while_radius_server_restart

1.send igmp join from a subscriber

2.send data traffic to the group

3.restart radius server

proxy app should forward data traffic to subscriber when received  from source

 

Igmpproxy_60

verify subscriber leaves joined group while radius server restart

test_igmpproxy_verify_proxy_sends_group_specific_query_while_radius_server_restart

1.send igmp join from a subscriber

2.send data traffic to the group

3.restart radius server

4.send leave to the group

proxy app should send group specific query when leave received

 

Igmpproxy_61

verify subscriber gets dhcp ip first and then joins igmp group

test_igmpproxy_subscriber_jons_igmp_group_after_getting_dhcp_ip

1.send dhcp discover from a subscriber

2.send igmp jon after getting dhcp ip

subscriber should get dhcp ip

subscriber should be able to join igmp group

 

Igmpproxy_62

verify subscriber data traffic after dhcp lease time expires

test_igmpproxy_verify_igmp_data_traffic_after_dhcp_lease_time_expires

1.send dhcp discover from a subscriber

2.send igmp jon after getting dhcp ip

3.send traffic till dhcp ip lease time expires

subscriber should get dhcp ip

subscriber should not receive multicast traffic after dhcp lease time expires