This document describes steps by step user guide for running the integrated setup with CP, FPC and DP.
Pre-requisite
- User of the document is aware of services CP, DP and FPC
- All services are build with the latest code base.'
Setup
CP, DP and FPC are three services which can run on separate VM instances. Network configuration for each of the service should be as mentioned below
Steps to configure and start services.
Following is the sequence in which all services must be started.
Step 1 : FPC-ODL
Make sure FPC agent is built from dev-stable branch.
https://github.com/sprintlabs/fpc/tree/dev-stable
Following are the instruction(you can refer README in FPC for the same).
- Start the ZeroMQ service for DPN communication.
~/fpc/zmqforwarder/python forwarder_device.py
- Start the listener for the DPN ZeroMQ southbound. This displays the messages sent on the southbound end of the controller and replies with an acknowledgement.
~/fpc/zmqforwarder/python forwarder_subscriber.py or ~/fpc/zmqforwarder/python jc.forwarder_subscriber.py --quiet
- Start up OpenDaylight.
cd ~/fpc/karaf/target/assembly/bin Check console of jc.forwarder_subscriber.py for controller notification updates.
- Ensure FPC topology state is clear
~/fpc/scripts/get-topology.sh Check result to see no dpns are listed If FPC topology state has previously registered dpns then ~/fpc/scripts/delete_all_dpns.sh Check again result to see no dpns are listed Note: ~/fpc/scripts/bindclient.sh is not required in teh E2E integrated system run with NGIC. The ngic-cp client bind to the fpc.
- Start up OpenDaylight.
cd ~/fpc/karaf/target/assembly/bin
Decide whether you want to run FPC Agent in the foreground or in the background by running one of the following commands.
- To run the agent in the foreground with an interactive shell:
./karaf
Foreground with a shell | Other commands |
---|---|
To exit the shell | system:shutdown |
To view the logs | log:tail |
- To run the agent in the background as a service:
./start
Background as a service | Other Commands |
---|---|
To stop the service | ./stop |
Look in this directory for logs | cd ~/fpc/karaf/target/assembly/data/log |
|Following step is optional if Gx exists and FPC pushes initialization rules. It will push configured rules on DPs on behalf of FPC|
- Start FPC test script as follows. This script will wait for DP to start and then will push the test rules on DP. Refer test_rules/readme.md for more details.
cd ~/fpc/zmqforwarder/test_rules/ ./rules_pub.py
|At this point the ngic can be started. Refer ngic documentation
Start the ngic-dp Check console of jc.forwarder_subscriber.py for dpn notification updates.
Start the ngic-cp Check ./karaf log to see ngic-cp has been registered.
At any time, run the script get-topology.sh to get a list of available DPNs.
scripts/get-topology.sh
At this point, you can run traffic through the ngic. The FPC controller will estabish and control the flows being requested of the E2E system
Step 2 : DP
Code reference : https://vikramb@gerrit.opencord.org/ngic
Make sure code is built with the appropriate configurations and minimum systems requirements as mentioned in above setup diagram are available.
Configure DP
Edit config/dp_config.cfg file and set following fields to appropriate values:
PORT0
PORT1
S1U_IP - S1U Interface IP address for data traffic.
S1U_MAC - MAC address for S1U Interface
SGI_IP - SGI Interface IP address for data traffic
SGI_MAC - MAC address for SGI Interface
NUM_WORKER
Edit config/interface.cfg file and set following fields to appropriate values :
All fields starting with name "zma_" if SDN_ODL_BUILD flag is enabled in config/ng-core_cfg.mk file.
All fields starting with "dp_comm" if SDN_OLD_BUILD flag is disabled in config/ng-core_cfg.mk file.
Edit dp/run.sh for :
Edit coremask and memory settings in command line arguments to pass in ARGS flag.
ARGS="-c 0xfff80000 -n 4 --socket-mem $MEMORY,0 --file-prefix cp --np-pci --\
Start DP
1. Go to DP director
> cd dp/
2. Start dp
> ./run.sh
DP will start and configure system cores and memory as per settings.
If CP is configured for UDP communication to DP(SDN_ODL_BUILD is disabled), then it will listen for UDP communication from CP, Otherwise it will start ZMQ communication with FPC and subscribe its DPN ID.
Following is sample output when communicating with SDN_OLD_BUILD flag enabled.
Step 3 : CP
Configure CP
Edit config/cp_config.cfg file and set following fields to appropriate values:
S11_SGW_IP
S11_MME_IP
S1U_SGW_IP
IP_POOL_IP/MASK
APN
MEMORY
Edit config/interface.cfg file and set following fields to appropriate values :
All fields starting with name "zma_" if SDN_ODL_BUILD flag is enabled in config/ng-core_cfg.mk file.
All fields starting with "dp_comm" if SDN_OLD_BUILD flag is disabled in config/ng-core_cfg.mk file.
Edit cp/run.sh for :
coremask and memory settings in command line arguments to pass in ARGS flag.
ARGS="-c 0x00e -n 4 --socket-mem $MEMORY,0 --file-prefix cp --np-pci --\
Start CP
1. Go to CP director
> cd cp/
2. Start cp
> ./run.sh
CP will start and configure system cores and memory as per settings.
If CP is configured for UDP communication to DP(SDN_ODL_BUILD is disabled), then it will push rules configured in following files to DP.
config/adc_rules.cfg
config/static_pcc.cfg
config/meter_profile.cfg
On successful startup CP will continue to print following statistics on console: