M-CORD 5.0 onboard procedure

This post shows the detail of build cord-pod 5.0 branch.

More detail information and important concept about CORD will be available on CORD Guide. If you have no experience about CORD, it will be more easy to start from CORD in a Box.

I listed some difference between CORD-POD and CORD-in-a-Box here.

  • CORD-in-a-Box only have 1 leaf enabled, CORD-POD have a complete Fabric architecture.
  • CORD-in-a-Box usually have only 1 compute node compute1 enabled, CORD-POD have 3 compute nodes (includes head node).
  • CORD-in-a-Box’s outside traffic will pass through fabric port on overlay ovs, but it will go back to headnode’s self routing table, CORD-POD will send outside traffic to fabric and pass to headnode, then NAT (from vRouter) to outside.


In here, I only list my equipments, you can find Bill of Materials(BOM) on CORD Guide.

  • EdgeCore AS5812 * 4
  • Accton 5081 Server 3 (HeadNode + 2 Compute Node)
  • Management Switch (TOR)


  • fabric: 4 switches include spine1, spine2, leaf1, leaf2
  • head1: Headnode
  • compute1: First Compute Node

Cable line installation

Physical Cabling Diagram

This image shows cable relationship between TOR, Fabric and Compute Node. Fabric switches connect to each other with fiber cable, and head1 and compute1 connect to leaf1, compute2 connect to leaf2. Besides connection in CORD, we also need to connect head1-public, head1-private, compute1, compute2, spine1, spine2, leaf1, leaf2 to Management Switch (TOR).

Network Configuration

I would suggest you to write down your configuration first, it can make sure your configuration right, my configuration shows as following.

Physical Cabling Diagram Config

BIOS Setting

We need to install head1 with Ubuntu 14.04, and head1’s MAAS must have connectivity with compute1 and compute2’s IPMI(Intelligent Platform Management Interface), MAAS controls with IPMI will over management network on TOR.

Prepare CORD Develop Machine

In this part, your head node should already installed as brand new Ubuntu 14.04(trusty), and follow this part to configure your head node machine.

And information about your CORD will be filled in a file named like as mcord-oai-physical.yml, this file put in your CORD type directory: ~/cord/orchestration/profiles/mcord/podconfig/, if you are using R-CORD or E-CORD, then change to target profile directory.


Configuration example

You can find configuration example here. And replace variables: external_ip, external_gw, deploy_docker_registry and so on as your machine’s constant.

Run build command on CORD Develop Machine

After everything were set, you can run following commands to start build.

cd ~/cord/build
make PODCONFIG=mcord-oai-physical.yml config
make -j4 build |& tee ~/build.out

Build log will redirect to ~/build.out, but I’m still highly recommend you to execute make command with tmux, execute build in tmux and you detach session, then you are free to go to grab food and drink, come back 2 hours later.