SEBA-676 Simple E2E multicast test for SiaB
Change-Id: I0450aed5e8abc4404ce821be7c4d90c57f33d8ee
diff --git a/src/test/cord-api/Framework/Subscriber.robot b/src/test/cord-api/Framework/Subscriber.robot
index 7e2937e..ad9bb68 100644
--- a/src/test/cord-api/Framework/Subscriber.robot
+++ b/src/test/cord-api/Framework/Subscriber.robot
@@ -77,6 +77,18 @@
Run Keyword If '${auth_pass}' == 'False' Sleep 20s
Run Keyword If '${auth_pass}' == 'False' Check Remote File Contents False /tmp/wpa.log authentication completed successfully ${ip} ${user} ${pass} ${container_type} ${container_name}
+Run Multicast Client
+ [Arguments] ${iface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ [Documentation] Executes mcjoin (a simple multicast client) on the RG.
+ Login And Run Command On Remote System rm -f /tmp/mcjoin.log; timeout 10 mcjoin -c 5 -i eth0 > /tmp/mcjoin.log || true ${ip} ${user} ${pass} ${container_type} ${container_name}
+
+Validate Multicast
+ [Arguments] ${auth_pass} ${iface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ [Documentation] Executes a particular auth request on the RG and verifies if it succeeds. auth_pass determines if authentication should pass
+ Run Multicast Client ${iface} ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Run Keyword If '${auth_pass}' == 'True' Check Remote File Contents True /tmp/mcjoin.log Received total: 5 packets ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Run Keyword If '${auth_pass}' == 'False' Check Remote File Contents True /tmp/mcjoin.log Received total: 0 packets ${ip} ${user} ${pass} ${container_type} ${container_name}
+
Start DHCP Server on Remote Host
[Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
${result}= Login And Run Command On Remote System dhcpd -cf /etc/dhcp/dhcpd.conf ${interface} ${ip} ${user} ${pass} ${container_type} ${container_name}
diff --git a/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot b/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot
index 4c7d057..8d72f1f 100644
--- a/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot
+++ b/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot
@@ -55,7 +55,7 @@
... Configure whitelist with correct ONU location
... Validate successful authentication/DHCP/E2E ping
[Setup] None
- [Tags] stable latest test1
+ [Tags] stable latest test1 multicast
Subscriber Ready to Authenticate
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Subscriber Service Chain Created
@@ -270,6 +270,24 @@
Subscriber Service Chain Created
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
+Multicast Join Fails -> Authenticate, run DHCP -> Multicast Join Succeeds
+ [Documentation] Validates Multicast Connectivity and object states for the given scenario:
+ ... (Assumes multicast server upstream of BNG)
+ ... (Assumes pimd server running on BNG)
+ ... Configure whitelist with correct ONU location
+ ... Run multicast client on RG
+ ... Validate that no multicast traffic flowing yet
+ ... Validate successful authentication/DHCP/E2E ping
+ ... Run multicast client on RG
+ ... Validate that multicast traffic is flowing E2E
+ [Tags] latest test11 multicast
+ Subscriber Ready to Authenticate
+ Validate Multicast False eth0 ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
+ Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
+ Subscriber Service Chain Created
+ Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
+ Validate Multicast True eth0 ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
+
*** Keywords ***
Setup
${auth} = Create List ${XOS_USER} ${XOS_PASSWD}