CORD : Setup and run guide for CP<->FPC<->DP

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).

  1. Start the ZeroMQ service for DPN communication.

~/fpc/zmqforwarder/python forwarder_device.py

  1. 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

  1. Start up OpenDaylight.

cd ~/fpc/karaf/target/assembly/bin Check console of jc.forwarder_subscriber.py for controller notification updates.

  1. 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.

  1. 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 shellOther commands
To exit the shellsystem:shutdown
To view the logslog:tail
  • To run the agent in the background as a service:

./start

Background as a serviceOther Commands
To stop the service./stop
Look in this directory for logscd ~/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|

  1. 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

  1. Start the ngic-dp Check console of jc.forwarder_subscriber.py for dpn notification updates.

  2. Start the ngic-cp Check ./karaf log to see ngic-cp has been registered.

  3. 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:

 

Attachments:

image2017-10-27 13_11_17.png (image/png)
DP-console.png (image/png)
CP-console.png (image/png)