Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Get a recent version of VirtualBox to import and run the VM. You can login to the VM with login:mininet and password:mininet. Then ifconfig to note the IP address assigned to VM (if you used Bridged-mode and DHCP in the VM's network settings). 

ONOS for SPRING-OPEN

Download If you wish to build from source, download the SPRING-OPEN version of the ONOS controller source code using github.

Code Block
languagetext
git clone https://gerrit.onosproject.org/spring-open

...

For this you will need Dell 4810 switches. If you are a network operator and you wish to try out this prototype (for free) in your lab, contact Saurav Das or Jaiwant Virk.

 

 

 

CPqD Software Switch

  1. Download the source code

    Code Block
    languagetext
    git clone https://github.com/CPqD/ofsoftswitch13.git
  2. Go back to the specific version of Cpqd

    Code Block
    languagetext
    git checkout f308c28242de57502f06d3dee80ce47ac17b6603
  3. Apply the following patch

    Code Block
    languagetext
    titlepatchfile_cpqd
    collapsetrue
    diff --git oflib/oxm-match.c oflib/oxm-match.c
    index e21edaa..d763cf9 100644
    --- oflib/oxm-match.c
    +++ oflib/oxm-match.c
    @@ -202,14 +202,22 @@ oxm_prereqs_ok(const struct oxm_field *field, const struct ofl_match *rule)
                 return false;
         }
     
    +    
         /* Check for eth_type */
         if (!field->dl_type[0])
             return true;
    +    else if (field->dl_type[0] == htons(0x8847))
    +	// quick-fix:ignore check for ethtpe when setting mpls label-id
    +	// needs a cleaner solution which checks for a push-mpls action before the set
    +	return true;
         else {
             HMAP_FOR_EACH_WITH_HASH (omt, struct ofl_match_tlv, hmap_node, hash_int(OXM_OF_ETH_TYPE, 0),
                   &rule->match_fields) {
                   uint16_t eth_type;
                   memcpy(&eth_type, omt->value, sizeof(uint16_t));
    +	      //VLOG_INFO_RL(LOG_MODULE,&rl, "field-dltype %x ethtype %x htons %x", field->dl_type[0],
    +	      //		eth_type, htons(eth_type));
    +
                   if (field->dl_type[0] == htons(eth_type)) {
                     return true;
                   } else if (field->dl_type[1] && field->dl_type[1] ==  htons(eth_type)) {
    @@ -349,7 +357,8 @@ parse_oxm_entry(struct ofl_match *match, const struct oxm_field *f,
             case OFI_OXM_OF_IPV4_SRC_W:
             case OFI_OXM_OF_ARP_SPA_W:
             case OFI_OXM_OF_ARP_TPA_W:
    -             ofl_structs_match_put32m(match, f->header, *((uint32_t*) value), *((uint32_t*) mask));
    +	     // note that the mask is bitwise notted to match 1.3 description of mask
    +             ofl_structs_match_put32m(match, f->header, *((uint32_t*) value), ~(*((uint32_t*) mask)));
                  return 0;
             case OFI_OXM_OF_ARP_SHA:
             case OFI_OXM_OF_ARP_THA:
    
    

    If you save it as a file (patchfile_cpqd), then you can apply the patch as following

    Code Block
    languagetext
    patch -p0 < ../patchfile_cpqd 
  4. Build it following the README.md file in the directory

...