...
Info | ||
---|---|---|
| ||
Dell platforms supported by this build are the 4810/4820t. 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 | ||
---|---|---|
| ||
$ 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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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
Download the source code
Code Block language text git clone https://github.com/CPqD/ofsoftswitch13.git
Go back to the specific version of Cpqd
Code Block language text git checkout f308c28242de57502f06d3dee80ce47ac17b6603
Apply the following patch
Code Block language text title patchfile_cpqd collapse true 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(ð_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 language text patch -p0 < ../patchfile_cpqd
- Build it following the README.md file in the directory
...