This page is about work in progress regarding SEBA validation and testing, more information should be added in the near future.
SEBA Validation on Arm on this wiki describes the work done for porting and verifying SEBA on ARM servers in particular.
On the the more general subject of testing SEBA as a whole, there were some emails exchanged on the Akraino technical-discuss mailing list, where some valuable feedback was received from Zack Williams of Open Network Foundation:
https://lists.akraino.org/g/technical-discuss/message/138
More input was received from Aaron Byrd (AT&T-TD&A)here:
https://lists.akraino.org/g/technical-discuss/message/142
SEBA-in-a-Box and PONsim
For validation purposes, the SIAB guide shows how to easily deploy SEBA on a single server and install PONsim for emulating real OLT/ONU hardware. See the SEBA-in-aBox guide
Installing PONsim on IEC
The installation instruction on the SIAB guide asume you are installing SEBA either using automation-tools, or by deploying the components individually using the charts on https://gerrit.opencord.org/helm-charts
It should be possible however to use PONsim on the Akraino IEC platform, after installing SEBA as described in SEBA Installation Guide. These have not been verified on ARM servers yet and some errors occurs when pods get scheduled on different servers, since IEC platform defines 3 servers for the Kubernetes cluster.
Here are some crude, general instructions on how to install SEBA and PONsim on the IEC platform. The instructions have been tailored for working with the IEC platform, as per the instructions on IEC Blueprints Installation Overview, using the OPNFV Fuel installer.
Some networking aspects have been changed to match the network addresses used by the installer, but you can always compare with the SIAB installation guide to match your environment.
helm repo add cord https://charts.opencord.org
helm repo update
kubectl get pods --all-namespaces | grep tiller
helm install -n cord-platform cord/cord-platform --version=6.1.0
kubectl get crd | grep -i etcd | wc -l
kubectl get pod | grep -i Running | wc -l
helm install -n seba cord/seba --version=1.0.0
kubectl get pod --all-namespaces | grep -i Running | wc -l
helm install -n att-workflow cord/att-workflow --version=1.0.2
kubectl get pods --all-namespaces | grep att
mkdir cord
cd cord
# From the SIAB tutorial install ponnet and ponsimv2
wget https://charts.opencord.org/ponnet-1.0.0.tgz
tar xzf ponnet-1.0.0.tgz
sed -i 's/10.22/101.22/g' ponnet/templates/pon0-cni.yaml
sed -i 's/10.23/101.23/g' ponnet/templates/pon0-cni.yaml
helm install -n ponnet ponnet
wget https://charts.opencord.org/ponsimv2-1.0.3.tgz
tar xzf ponsimv2-1.0.3.tgz
helm install -n ponsimv2 ponsimv2
# on all nodes enable forwarding
sudo iptables -P FORWARD ACCEPT
# check voltha
kubectl -n voltha get pod
# get mininet charts
wget https://charts.opencord.org/mininet-0.2.0.tgz
tar xzf mininet-0.2.0.tgz
# Fix onos service name
sed -i 's/\<onos-openflow/cord-platform-onos-openflow/g' mininet/values.yaml
# on all nodes load openvswitch module
sudo modprobe openvswitch
# install chart
helm install -n mininet mininet
kubectl attach -ti deployment.apps/mininet
CTRL-P CTRL-Q
# find pon0
brctl show
# enable pon0 to forward EAPOL packets
echo 8 > /tmp/pon0_group_fwd_mask
sudo cp /tmp/pon0_group_fwd_mask /sys/class/net/pon0/bridge/group_fwd_mask
# install ponsim-pod chart
wget https://charts.opencord.org/ponsim-pod-1.1.0.tgz
tar xzf ponsim-pod-1.1.0.tgz
# replace ipv4loopback address in 030-fabric
sed -i 's/192.168.0/100.100.0/g' ponsim-pod/tosca/030-fabric.yaml
helm install -n ponsim-pod ponsim-pod
# Check that ponsim-pod is awaiting authentication
http -a admin@opencord.org:letmein GET \
http://127.0.0.1:30001/xosapi/v1/att-workflow-driver/attworkflowdriverserviceinstances | \
jq '.items[0].authentication_state' | grep AWAITING
# ONOS customizations to instruct the ONU to exchange untagged packets with the RG instead of packets tagged with VLAN 0
http -a karaf:karaf POST \
http://127.0.0.1:30120/onos/v1/configuration/org.opencord.olt.impl.Olt defaultVlan=65535
# Validating the install; authenticate the RG
RG_POD=$( kubectl -n voltha get pod -l "app=rg" -o jsonpath='{.items[0].metadata.name}' )
kubectl -n voltha exec -ti $RG_POD bash
# inside the RG pod we need to run this command to authenticate;
# hit Ctrl-C after authentication is complete (about 5 seconds) and then exit the interactive shell
wpa_supplicant -i eth0 -Dwired -c /etc/wpa_supplicant/wpa_supplicant.conf
# Now the AttDriverWorkflow Service Instance should be in APPROVED state. To check use this command:
http -a admin@opencord.org:letmein GET \
http://127.0.0.1:30001/xosapi/v1/att-workflow-driver/attworkflowdriverserviceinstances | \
jq '.items[0].authentication_state' | grep APPROVED
# The FabricCrossconnect Service Instance should have a check in the Backend status column. You can check for this by running:
http -a admin@opencord.org:letmein GET \
http://127.0.0.1:30001/xosapi/v1/fabric-crossconnect/fabriccrossconnectserviceinstances | \
jq '.items[0].backend_status'|grep OK
# Again on the RG POD, you need to run dhclient to obtain a valid IP address from the 172.18.0.0/24 subnet
ifconfig eth0 0.0.0.0
dhclient eth0