Versions Compared

Key

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

...

Info
titleDisclaimer

Dell platforms supported by this build are the 4810/4820t.
This FTOS version is solely for the purpose of features that are part of this project. It is not meant to be used in production and Dell support will not respond to any queries for this version. Dell will not support any bugs solely on the basis of downloading the binary.

Download (~48MB):  http://downloads.onosproject.org/spring-open/FTOS-SE-1-0-0-3516.bin

<more coming soon>

 

The Dell hardware will be preloaded with a different version of FTOS. Here are few things we need to do before we load the FTOS version for the project. These include configuring the management interface to your management network specifics. Note that the controller needs to be accessible via the management interface for OpenFlow communication between the controllers and switches. We also need to provide ssh access into the switch. Use the console port (and a terminal emulator) for the configuration below.

Code Block
#conf
(conf)# interface managementethernet 0/0
(conf-if-ma-0/0)# ip address <ip-addr-of-mgmt-interface>
(conf-if-ma-0/0)# no shutdown
(conf-if-ma-0/0)# exit
(conf)# management route 0.0.0.0/0 <gateway-ip>
(conf)# username <your-username> password <set-a-pwd> privilege 15
(conf)# ip ssh server enable
(conf)# ip ssh password-authentication enable
(conf)# exit
# sh running config

Once the above configuration is complete, the switch should be accessible via ssh. Copy the downloaded FTOS version to the switch using scp from your local machine.

Code Block
languagetext
$ scp <path/to/>FTOS-SE-1-0-0-3516.bin <username>@<switch-management-IP-addr>:FTOS-SE-1-0-0-3516.bin

Now login to the switch using ssh to enter the following commands to load the binary you just copied over. First check that you can see the file in the flash.

Code Block
languagetext
sr101#dir
Directory of flash:

  1  drwx       4096   Dec 31 1979 16:00:00 -08:00 .  
  2  drwx       3072   Dec 06 2014 03:29:42 -08:00 ..  
  3  drwx       4096   Mar 01 2004 09:35:14 -08:00 TRACE_LOG_DIR  
  4  drwx       4096   Mar 01 2004 09:35:14 -08:00 CORE_DUMP_DIR  
  5  d---       4096   Mar 01 2004 09:35:16 -08:00 ADMIN_DIR  
  6  drwx       4096   Mar 01 2004 09:35:16 -08:00 RUNTIME_PATCH_DIR  
  7  drwx       4096   Nov 28 2014 05:22:32 -08:00 CONFIG_TEMPLATE  
  8  -rwx       6821   Dec 04 2014 07:02:08 -08:00 startup-config  
  9  -rwx   48661501   Nov 28 2014 04:24:34 -08:00 FTOS-SE-1-0-0-3516.bin  
 10  drwx       4096   Aug 24 2013 05:00:16 -08:00 CONFD_LOG_DIR  
 11  -rwx       4094   Nov 04 2014 06:06:10 -08:00 inetd.conf  
 12  -rwx         32   Nov 04 2014 06:06:18 -08:00 ssCronCopy.txt  
 13  -rwx       6278   Nov 01 2014 01:22:30 -08:00 startup-config.bak  
 14  -rwx     230695   Dec 04 2014 07:02:16 -08:00 confd_cdb.tar.gz  
 15  -rwx   39585701   Nov 04 2014 06:10:58 -08:00 BAK-FTOS.bin  

flash: 2056916992 bytes total (1864204288 bytes free)

Upgrade the OS. It takes a few minutes. 

Code Block
languagetext
sr101# upgrade system flash://FTOS-SE-1-0-0-3516.bin A:
! .....
 
sr101# reload

Once the upgrade is done, reload the box. You will of course lose your ssh session. But once it is back, login again to configure the OpenFlow instance. 

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

...