trellisp4.py ERROR: 'openconfig-interfaces': Requested schema model is not known

66 views
Skip to first unread message

Sreenivasulu Saya

unread,
Sep 10, 2019, 9:50:22 AM9/10/19
to Trellis Developers
Hi All,

In the routing/trellis directory, when I executed the following command:

        $ cd routing/trellis
        $ sudo python trellisp4.py --onos-ip 127.0.0.1

I get the following error:
--------
sayasree@office:~/Work/Trellis/routing/trellis$ sudo -E python trellisp4.py --onos-ip 127.0.0.1
Connecting to remote controller at 127.0.0.1:6653
*** Creating network
*** Adding hosts:
h1 h2 h3 h4 
*** Adding switches:
s204 s205 s226 s227 
*** Adding links:
(h1, s204) (h2, s204) (h3, s205) (h4, s205) (s226, s204) (s226, s205) (s227, s204) (s227, s205) 
*** Configuring hosts
h1 h2 h3 h4 
*** Starting controller
c0 
*** Starting 4 switches
s204 .⚡ simple_switch_grpc @ 17822
s205 .⚡ simple_switch_grpc @ 17838
s226 .⚡ simple_switch_grpc @ 17854
s227 .⚡ simple_switch_grpc @ 17870

*** Starting CLI:
mininet> 
*** WARN: switch s204 died ☠️ 
--------------------------------------------------------------------------------
s204 log (from /tmp/bmv2-s204-log):
...

I0910 19:17:31.135179033   17822 server_builder.cc:247]      Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2147483647, CQ timeout (msec): 1000
Calling target program-options parser
Server listening on 0.0.0.0:35149
[19:17:31.150] [bmv2] [E] [thread 17822] Error by sr_module_change_subscribe for 'openconfig-interfaces': Requested schema model is not known
--------------------------------------------------------------------------------


*** WARN: switch s205 died ☠️ 
--------------------------------------------------------------------------------
s205 log (from /tmp/bmv2-s205-log):
...

I0910 19:17:31.213346353   17838 server_builder.cc:247]      Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2147483647, CQ timeout (msec): 1000
Calling target program-options parser
Server listening on 0.0.0.0:60391
[19:17:31.230] [bmv2] [E] [thread 17838] Error by sr_module_change_subscribe for 'openconfig-interfaces': Requested schema model is not known
--------------------------------------------------------------------------------


*** WARN: switch s226 died ☠️ 
--------------------------------------------------------------------------------
s226 log (from /tmp/bmv2-s226-log):
...

I0910 19:17:31.300933975   17854 server_builder.cc:247]      Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2147483647, CQ timeout (msec): 1000
Calling target program-options parser
Server listening on 0.0.0.0:48067
[19:17:31.324] [bmv2] [E] [thread 17854] Error by sr_module_change_subscribe for 'openconfig-interfaces': Requested schema model is not known
--------------------------------------------------------------------------------


*** WARN: switch s227 died ☠️ 
--------------------------------------------------------------------------------
s227 log (from /tmp/bmv2-s227-log):
...

I0910 19:17:31.369128334   17870 server_builder.cc:247]      Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2147483647, CQ timeout (msec): 1000
Calling target program-options parser
Server listening on 0.0.0.0:58147
[19:17:31.385] [bmv2] [E] [thread 17870] Error by sr_module_change_subscribe for 'openconfig-interfaces': Requested schema model is not known
--------------------------------------------------------------------------------


mininet> nodes
available nodes are: 
c0 h1 h2 h3 h4 s204 s205 s226 s227
mininet> pingall
 <<<<< Here the ALL THE PING Tests are FAILING >>>>>>>
-----------------

I would greatly appreciate if you could give me any pointers how to fix this error.

Regards,
  --Sreeni Saya


Sreenivasulu Saya

unread,
Sep 10, 2019, 1:20:37 PM9/10/19
to Trellis Developers
Hi All,

Now, I am able to run the trellisp4.py and the s204, s205, s226, s227 nodes and the edges between them are getting displayed in the ONOS GUI.

When I do 'pingall' from the Mininet prompt, I am seeing the following errors in the ONOS logs (the window in which the command: bazel run onos-local -- clean)
---------------------------
 | 250 - org.onosproject.onos-apps-segmentrouting-app - 2.3.0.SNAPSHOT | Could not check validity of link DefaultLink{src=device:s205/2, dst=device:s227/1, type=DIRECT, state=ACTIVE, expected=false} as subtending devices are not yet configured
2019-09-10T22:42:23,022 | WARN  | onos-sr-event-main-0 | TopologyHandler                  | 250 - org.onosproject.onos-apps-segmentrouting-app - 2.3.0.SNAPSHOT | Source device of this link is not configured.. not processing further
2019-09-10T22:43:51,933 | WARN  | onos-sr-packet-0 | SegmentRoutingManager            | 250 - org.onosproject.onos-apps-segmentrouting-app - 2.3.0.SNAPSHOT | Received unexpected ARP packet on device:s205/4
2019-09-10T22:43:52,951 | WARN  | onos-sr-packet-0 | SegmentRoutingManager            | 250 - org.onosproject.onos-apps-segmentrouting-app - 2.3.0.SNAPSHOT | Received unexpected ARP packet on device:s205/4
2019-09-10T22:43:52,952 | WARN  | onos-sr-packet-0 | SegmentRoutingManager            | 250 - org.onosproject.onos-apps-segmentrouting-app - 2.3.0.SNAPSHOT | Received unexpected ARP packet on device:s204/4
---------------------------

Can someone share thoughts on what might be going wrong?

Regards,
  --Sreeni Saya

Charles Chan

unread,
Sep 10, 2019, 3:35:51 PM9/10/19
to Sreenivasulu Saya, Trellis Developers
How does your `netcfg` look like?
It seems that either s205 or s227 is not properly configured.

Thanks,
Charles Chan, Ph.D.
Member of Technical Staff, Open Networking Foundation


--
You received this message because you are subscribed to the Google Groups "Trellis Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trellis-dev...@opennetworking.org.
To view this discussion on the web visit https://groups.google.com/a/opennetworking.org/d/msgid/trellis-dev/63ecc52f-6f77-4ca9-a5a0-950e4a815a4b%40opennetworking.org.

Sreenivasulu Saya

unread,
Sep 11, 2019, 10:54:19 AM9/11/19
to Trellis Developers, saya...@gmail.com
Hi Charles,

Can you help me with the commands for checking the netcfg configuration for the Trellis?
In which directory I can find the present configuration used for the switches: s205 or s227.

Regards,
  --Sreeni Saya
To unsubscribe from this group and stop receiving emails from it, send an email to trell...@opennetworking.org.

Sreenivasulu Saya

unread,
Sep 11, 2019, 10:57:28 AM9/11/19
to Trellis Developers, saya...@gmail.com
Hi Charles,

Is the netcfg config in the trellisp4.json located in the same directory as trellisp4.py?
Any pointer to a correct netcfg configuration would be greatly appreciated.

Regards,
  --Sreeni Saya

On Wednesday, September 11, 2019 at 1:05:51 AM UTC+5:30, Charles Chan wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to trell...@opennetworking.org.

Charles Chan

unread,
Sep 16, 2019, 1:27:10 PM9/16/19
to Sreenivasulu Saya, Trellis Developers
Yes, trellisp4.json should be the correct config for trellisp4.py. Does that not work for you?
You can verify the network config in ONOS by running "netcfg" command in ONOS CLI.


Thanks,
Charles Chan, Ph.D.
Member of Technical Staff, Open Networking Foundation

To unsubscribe from this group and stop receiving emails from it, send an email to trellis-dev...@opennetworking.org.
To view this discussion on the web visit https://groups.google.com/a/opennetworking.org/d/msgid/trellis-dev/7b6da609-8e1e-41e6-b551-d078b0f4ca6a%40opennetworking.org.

Sreenivasulu Saya

unread,
Sep 17, 2019, 11:59:02 AM9/17/19
to Trellis Developers, saya...@gmail.com
Hi Charles,

The trellisp4.py did not work for me. I have to initialize with the IP addresses for h1 (10.0.2.1), h2(10.0.2.2), h3(10.0.3.1) and h4(10.0.3.2) in trellisp4.py and then I am able to ping between h1 and h2 only (in Mininet). The ping between h1 to h3 and h3 to h4 also fail.

I see the following warnings:
==================
mininet> 
*** WARN: switch s205 died ☠️ 
--------------------------------------------------------------------------------
s205 log (from /tmp/bmv2-s205-log):
...
Path 'interfaces' is in module openconfig-interfaces
Server listening on 0.0.0.0:37351
[21:15:20.360] [bmv2] [E] [thread 15357] Error by sr_commit: Requested resource is already locked
terminate called after throwing an instance of 'std::out_of_range'
  what():  _Map_base::at
--------------------------------------------------------------------------------


*** WARN: switch s226 died ☠️ 
--------------------------------------------------------------------------------
s226 log (from /tmp/bmv2-s226-log):
...
Calling target program-options parser
Path 'components' is in module openconfig-platform
Path 'interfaces' is in module openconfig-interfaces
Server listening on 0.0.0.0:32979
[21:15:20.567] [bmv2] [E] [thread 15381] Error by sr_dp_get_items_subscribe: Requested resource is already locked
--------------------------------------------------------------------------------
==================

I hope those warnings does not cause any problem to the link connectivity between the hosts (h1 to h4).

Here is the output of netcfg command in the ONOS CLI. It appears to be fine.
------------
sayasree@root > netcfg 
{
  "apps" : {
    "org.onosproject.provider.lldp" : {
      "suppression" : {
        "deviceTypes" : [ "ROADM", "OTN", "FIBER_SWITCH", "OPTICAL_AMPLIFIER", "OLS", "TERMINAL_DEVICE" ],
        "annotation" : "{\"no-lldp\":null}"
      }
    }
  },
  "devices" : {
    "device:s204" : {
      "segmentrouting" : {
        "name" : "s204",
        "ipv4NodeSid" : 204,
        "ipv4Loopback" : "192.168.0.204",
        "ipv6NodeSid" : 214,
        "ipv6Loopback" : "2000::c0a8:0204",
        "routerMac" : "00:00:00:00:02:04",
        "isEdgeRouter" : true,
        "adjacencySids" : [ ]
      },
      "basic" : {
        "managementAddress" : "grpc://127.0.0.1:56003?device_id=1",
        "driver" : "bmv2",
        "pipeconf" : "org.onosproject.pipelines.fabric"
      },
      "ports" : {
        "1" : {
          "name" : "s204-eth1",
          "speed" : 10000,
          "enabled" : true,
          "number" : 1,
          "removed" : false,
          "type" : "copper"
        },
        "3" : {
          "name" : "s204-eth3",
          "speed" : 10000,
          "enabled" : true,
          "number" : 3,
          "removed" : false,
          "type" : "copper"
        },
        "2" : {
          "name" : "s204-eth2",
          "speed" : 10000,
          "enabled" : true,
          "number" : 2,
          "removed" : false,
          "type" : "copper"
        },
        "4" : {
          "name" : "s204-eth4",
          "speed" : 10000,
          "enabled" : true,
          "number" : 4,
          "removed" : false,
          "type" : "copper"
        }
      }
    },
    "device:s226" : {
      "segmentrouting" : {
        "name" : "s226",
        "ipv4NodeSid" : 226,
        "ipv4Loopback" : "192.168.0.226",
        "ipv6NodeSid" : 236,
        "ipv6Loopback" : "2000::c0a8:0226",
        "routerMac" : "00:00:00:00:02:26",
        "isEdgeRouter" : false,
        "adjacencySids" : [ ]
      },
      "ports" : {
        "1" : {
          "name" : "s226-eth1",
          "speed" : 10000,
          "enabled" : true,
          "number" : 1,
          "removed" : false,
          "type" : "copper"
        },
        "2" : {
          "name" : "s226-eth2",
          "speed" : 10000,
          "enabled" : true,
          "number" : 2,
          "removed" : false,
          "type" : "copper"
        }
      },
      "basic" : {
        "managementAddress" : "grpc://127.0.0.1:55303?device_id=1",
        "driver" : "bmv2",
        "pipeconf" : "org.onosproject.pipelines.fabric"
      }
    },
    "device:s205" : {
      "segmentrouting" : {
        "name" : "s205",
        "ipv4NodeSid" : 205,
        "ipv4Loopback" : "192.168.0.205",
        "ipv6NodeSid" : 215,
        "ipv6Loopback" : "2000::c0a8:0205",
        "routerMac" : "00:00:00:00:02:05",
        "isEdgeRouter" : true,
        "adjacencySids" : [ ]
      },
      "ports" : {
        "1" : {
          "name" : "s205-eth1",
          "speed" : 10000,
          "enabled" : true,
          "number" : 1,
          "removed" : false,
          "type" : "copper"
        },
        "3" : {
          "name" : "s205-eth3",
          "speed" : 10000,
          "enabled" : true,
          "number" : 3,
          "removed" : false,
          "type" : "copper"
        },
        "2" : {
          "name" : "s205-eth2",
          "speed" : 10000,
          "enabled" : true,
          "number" : 2,
          "removed" : false,
          "type" : "copper"
        },
        "4" : {
          "name" : "s205-eth4",
          "speed" : 10000,
          "enabled" : true,
          "number" : 4,
          "removed" : false,
          "type" : "copper"
        }
      },
      "basic" : {
        "managementAddress" : "grpc://127.0.0.1:59631?device_id=1",
        "driver" : "bmv2",
        "pipeconf" : "org.onosproject.pipelines.fabric"
      }
    },
    "device:s227" : {
      "ports" : {
        "1" : {
          "name" : "s227-eth1",
          "speed" : 10000,
          "enabled" : true,
          "number" : 1,
          "removed" : false,
          "type" : "copper"
        },
        "2" : {
          "name" : "s227-eth2",
          "speed" : 10000,
          "enabled" : true,
          "number" : 2,
          "removed" : false,
          "type" : "copper"
        }
      },
      "basic" : {
        "managementAddress" : "grpc://127.0.0.1:52687?device_id=1",
        "driver" : "bmv2",
        "pipeconf" : "org.onosproject.pipelines.fabric"
      },
      "segmentrouting" : {
        "name" : "s227",
        "ipv4NodeSid" : 227,
        "ipv4Loopback" : "192.168.0.227",
        "ipv6NodeSid" : 237,
        "ipv6Loopback" : "2000::c0a8:0227",
        "routerMac" : "00:00:00:00:02:27",
        "isEdgeRouter" : false,
        "adjacencySids" : [ ]
      }
    }
  },
  "ports" : {
    "device:s205/3" : {
      "interfaces" : [ {
        "name" : "h3",
        "ips" : [ "10.0.3.254/24" ],
        "vlan-untagged" : 20,
        "mac" : "00:00:00:00:02:05"
      } ]
    },
    "device:s205/4" : {
      "interfaces" : [ {
        "name" : "h4",
        "ips" : [ "10.0.3.254/24" ],
        "vlan-tagged" : [ 20 ],
        "mac" : "00:00:00:00:02:05"
      } ]
    },
    "device:s204/4" : {
      "interfaces" : [ {
        "name" : "h2",
        "ips" : [ "10.0.2.254/24" ],
        "vlan-tagged" : [ 10 ],
        "mac" : "00:00:00:00:02:04"
      } ]
    },
    "device:s204/3" : {
      "interfaces" : [ {
        "name" : "h1",
        "ips" : [ "10.0.2.254/24" ],
        "vlan-untagged" : 10,
        "mac" : "00:00:00:00:02:04"
      } ]
    }
  },
  "layouts" : { },
  "links" : { },
  "hosts" : { },
  "regions" : { }
}
sayasree@root >     
-------------

Charles Chan

unread,
Sep 19, 2019, 1:25:36 PM9/19/19
to Sreenivasulu Saya, Trellis Developers, Carmelo Cascone, Yi Tseng
Hi Sreeni,

I haven't seen this before. Maybe Carmelo or Yi could help.

Does the log /tmp/bmv2-s205-log have any detail?
The error says "Requested resource is already locked". Is it possible that you have a previous running instance that's occupying some resources?


Thanks,
Charles Chan, Ph.D.
Member of Technical Staff, Open Networking Foundation

To unsubscribe from this group and stop receiving emails from it, send an email to trellis-dev...@opennetworking.org.
To view this discussion on the web visit https://groups.google.com/a/opennetworking.org/d/msgid/trellis-dev/ae2703bf-a1e1-48d7-ba57-4eaefd76688b%40opennetworking.org.

Sreenivasulu Saya

unread,
Sep 20, 2019, 8:38:29 AM9/20/19
to Trellis Developers, saya...@gmail.com, car...@opennetworking.org, y...@opennetworking.org
Hi Charles,

The /tmp/bmv2-s205-log file just has the following entries:
------
simple_switch_grpc --device-id 1 -i 1@s205-eth1 -i 2@s205-eth2 -i 3@s205-eth3 -i 4@s205-eth4 --thrift-port 40409 --log-console -Lwarn --no-p4 -- --cpu-port 255 --grpc-server-addr 0.0.0.0:40089

--------------------------------------------------------------------------------

I0918 20:39:02.429316541   20537 server_builder.cc:247]      Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2147483647, CQ timeout (msec): 1000
Calling target program-options parser
Path 'components' is in module openconfig-platform
Path 'interfaces' is in module openconfig-interfaces
Server listening on 0.0.0.0:40089
[20:39:02.885] [bmv2] [W] [thread 20550] Invalid event received by port monitor
[20:39:02.885] [bmv2] [E] [thread 20550] Add port operation failed
New connection
[20:39:02.975] [bmv2] [W] [thread 20550] Invalid event received by port monitor
[20:39:02.975] [bmv2] [E] [thread 20550] Add port operation failed
P4Runtime GetForwardingPipelineConfig
P4Runtime GetForwardingPipelineConfig
[20:39:03.172] [bmv2] [W] [thread 20550] Invalid event received by port monitor
[20:39:03.172] [bmv2] [E] [thread 20550] Add port operation failed
P4Runtime GetForwardingPipelineConfig
[20:39:03.274] [bmv2] [W] [thread 20550] Invalid event received by port monitor
[20:39:03.274] [bmv2] [E] [thread 20550] Add port operation failed
terminate called after throwing an instance of 'std::out_of_range'
  what():  _Map_base::at
-----------

I am starting the ONOS and with 'clean' option.
Before running the trellisp4.py, I am cleaning up the Mininet resource with 'sudo mn -c'.

Regards,
  --Sreeni Saya

Carmelo Cascone

unread,
Sep 20, 2019, 5:24:21 PM9/20/19
to Sreenivasulu Saya, Trellis Developers, y...@opennetworking.org
Hi Sreeni,

It looks like simple_switch_grpc is crashing for some reason. I’m not sure that’s the reason, you should check with the bmv2 maintainers at: https://github.com/p4lang/behavioral-model 

In the meantime, we recently open sourced Stratum, which comes with a similar Docker image to run Mininet with `stratum_bmv2`, a Stratum target that uses BMv2 simple_switch. You can find here instructions to try out stratum_bmv2 with Trellis:


I tested these instructions recently and it should work.

Hope it helps.
Carmelo

To unsubscribe from this group and stop receiving emails from it, send an email to trellis-dev...@opennetworking.org.
To view this discussion on the web visit https://groups.google.com/a/opennetworking.org/d/msgid/trellis-dev/578eb295-bade-4741-9c4d-4941191582f5%40opennetworking.org.

Sreenivasulu Saya

unread,
Sep 22, 2019, 8:23:09 AM9/22/19
to Carmelo Cascone, Trellis Developers, y...@opennetworking.org
Hi Carmelo,

Thanks for your supportive response. 

I am trying to get the following configuration working:
  * ONOS Version 2.3 (SNAPSHOT cloned from http://gerrit.onosproject.org/onos followed the instructions in the ONOS official GitHub repo). Finally I could build the ONOS with bazel.
* Trellis configuration with 2spine-2leaf nodes with P4 switches simulated in Mininet (trellisp4.py located in https://github.com/opennetworkinglab/routing//trellis). I assume that ONOS interfaces with these P4 switches (with IPv4 addresses) through P4runtime (correct me if my assumption is wrong). 

ONOS 2.3 with Trellis (P4) seems to be unstable and it is not pinging the hosts consistently. Sometimes none of the hosts are pingable, few other times only h1 -> h2 is pingable, sometimes h1->h2, h3->h4 are pingable, but pinging h1->h3 and h1->h4 fails. So far, I could get all the hosts (h1, h2, h3, h4) mutually pingable (pingall) only three times! Every time, I run the same sequence of commands for starting ONOS, configuration ONOS with Trellis nodes and then running Trellis topology in Mininet. I am not able to isolate the root cause of the inconsistent ping behaviour in Trellis (is it due to incorrect routing behaviour by Segment Routing app, or ONOS, or race conditions among the simple_switch_grpc instance).

As a last attempt I am tryout the exercises listed in: https://github.com/opennetworkinglab/onos-p4-tutorial
in the VM provided in the link. Please let me know if these exercises can help me in the configuration (that is mentioned in the beginning of this message).

Regards,
  --Sreeni Saya


Charles Chan

unread,
Sep 22, 2019, 10:25:22 PM9/22/19
to Sreenivasulu Saya, Carmelo Cascone, Trellis Developers, Yi Tseng
Did you make sure ONOS discovered all the hosts (in "hosts" CLI command)?

It would be helpful to attach the onos-diags (see https://wiki.onosproject.org/display/ONOS/ONOS+Remote+Admin+Tools for details).


Thanks,
Charles Chan, Ph.D.
Member of Technical Staff, Open Networking Foundation

Sreenivasulu Saya

unread,
Sep 23, 2019, 12:04:50 AM9/23/19
to Charles Chan, Carmelo Cascone, Trellis Developers, Yi Tseng
Hi Charles,

Here is the output from the ONOS CLI:
----------
sayasree@root > hosts                                                  09:15:17
id=00:AA:00:00:00:01/None, mac=00:AA:00:00:00:01, locations=[device:s204/3], vlan=None, ip(s)=[10.0.2.1], innerVlan=None, outerTPID=unknown, provider=of:org.onosproject.provider.host, configured=false
sayasree@root > devices                                                09:15:18
id=device:s204, available=true, local-status=connected 18m53s ago, role=MASTER, type=SWITCH, mfr=p4.org, hw=master, sw=master, serial=unknown, chassis=0, driver=bmv2:org.onosproject.pipelines.fabric, locType=none, managementAddress=grpc://127.0.0.1:44419?device_id=1, name=device:s204, p4DeviceId=1, protocol=P4Runtime
id=device:s205, available=true, local-status=connected 18m53s ago, role=MASTER, type=SWITCH, mfr=p4.org, hw=master, sw=master, serial=unknown, chassis=0, driver=bmv2:org.onosproject.pipelines.fabric, locType=none, managementAddress=grpc://127.0.0.1:35207?device_id=1, name=device:s205, p4DeviceId=1, protocol=P4Runtime
id=device:s226, available=true, local-status=connected 18m53s ago, role=MASTER, type=SWITCH, mfr=p4.org, hw=master, sw=master, serial=unknown, chassis=0, driver=bmv2:org.onosproject.pipelines.fabric, locType=none, managementAddress=grpc://127.0.0.1:60587?device_id=1, name=device:s226, p4DeviceId=1, protocol=P4Runtime
id=device:s227, available=true, local-status=connected 18m53s ago, role=MASTER, type=SWITCH, mfr=p4.org, hw=master, sw=master, serial=unknown, chassis=0, driver=bmv2:org.onosproject.pipelines.fabric, locType=none, managementAddress=grpc://127.0.0.1:59801?device_id=1, name=device:s227, p4DeviceId=1, protocol=P4Runtime
sayasree@root > links                                                  09:15:28
src=device:s204/1, dst=device:s205/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s204/1, dst=device:s226/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s204/2, dst=device:s227/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s204/4, dst=device:s205/4, type=DIRECT, state=ACTIVE, expected=false
src=device:s205/1, dst=device:s204/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s205/1, dst=device:s226/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s205/2, dst=device:s226/2, type=DIRECT, state=ACTIVE, expected=false
src=device:s205/2, dst=device:s227/2, type=DIRECT, state=ACTIVE, expected=false
src=device:s205/4, dst=device:s204/4, type=DIRECT, state=ACTIVE, expected=false
src=device:s226/1, dst=device:s204/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s226/1, dst=device:s205/1, type=DIRECT, state=ACTIVE, expected=false
src=device:s226/2, dst=device:s205/2, type=DIRECT, state=ACTIVE, expected=false
src=device:s226/2, dst=device:s227/2, type=DIRECT, state=ACTIVE, expected=false
src=device:s227/1, dst=device:s204/2, type=DIRECT, state=ACTIVE, expected=false
src=device:s227/2, dst=device:s205/2, type=DIRECT, state=ACTIVE, expected=false
src=device:s227/2, dst=device:s226/2, type=DIRECT, state=ACTIVE, expected=false
sayasree@root >                                                        09:15:45
--------------

I ran the following commands:
----------
$ cd routing/trellis
$ onos-netcfg localhost trellisp4.json
$ sudo -E python trellisp4.py --onos-ip 127.0.0.1
----------

As you can from the following logs, h1 is able to ping h2. But h3 to h4 ping is failing...
--------
sayasree@office:~/Work/Trellis/routing/trellis$ sudo -E python trellisp4.py --onos-ip 127.0.0.1
Connecting to remote controller at 127.0.0.1:6653
*** Creating network
*** Adding hosts:
h1 h2 h3 h4
*** Adding switches:
s204 s205 s226 s227
*** Adding links:
(h1, s204) (h2, s204) (h3, s205) (h4, s205) (s226, s204) (s226, s205) (s227, s204) (s227, s205)
*** Configuring hosts
h1 h2 h3 h4
*** Starting controller
c0
*** Starting 4 switches
s204 ..⚡️ simple_switch_grpc @ 9386
s205 ...⚡️ simple_switch_grpc @ 9405
s226 .....⚡️ simple_switch_grpc @ 9431
s227 ....⚡️ simple_switch_grpc @ 9467

*** Starting CLI:
mininet>
mininet>
mininet>
mininet> nodes
available nodes are:
c0 h1 h2 h3 h4 s204 s205 s226 s227
mininet> links
h1-eth0<->s204-eth3 (OK OK)
h2-eth0.10<->s204-eth4 (OK OK)
h3-eth0<->s205-eth3 (OK OK)
h4-eth0.20<->s205-eth4 (OK OK)
s226-eth1<->s204-eth1 (OK OK)
s226-eth2<->s205-eth1 (OK OK)
s227-eth1<->s204-eth2 (OK OK)
s227-eth2<->s205-eth2 (OK OK)
mininet> h1 ping h2
PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data.
From 10.0.2.1 icmp_seq=1 Destination Host Unreachable
From 10.0.2.1 icmp_seq=2 Destination Host Unreachable
From 10.0.2.1 icmp_seq=5 Destination Host Unreachable            <<<<<< At this momement, I ran the command: onos-netcfg localhost trellisp4.json
64 bytes from 10.0.2.2: icmp_seq=8 ttl=63 time=1028 ms
64 bytes from 10.0.2.2: icmp_seq=9 ttl=63 time=6.12 ms
64 bytes from 10.0.2.2: icmp_seq=10 ttl=63 time=4.96 ms
64 bytes from 10.0.2.2: icmp_seq=11 ttl=63 time=1.88 ms
^C
--- 10.0.2.2 ping statistics ---
11 packets transmitted, 4 received, +3 errors, 63% packet loss, time 10176ms
rtt min/avg/max/mdev = 1.881/260.458/1028.862/443.640 ms, pipe 4
mininet> h3 ping h4
PING 10.0.3.2 (10.0.3.2) 56(84) bytes of data.
From 10.0.3.1 icmp_seq=1 Destination Host Unreachable
From 10.0.3.1 icmp_seq=2 Destination Host Unreachable
From 10.0.3.1 icmp_seq=3 Destination Host Unreachable
^C
--- 10.0.3.2 ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5128ms
pipe 4
mininet> exit
---------------------

I have uploaded the onos-dignostics files and the ONOS console log in the Google Drive folder URL: https://drive.google.com/open?id=13m_u-qEdHoeTOKRF8CkSE9TREKfd-RcA

My goal is to have a successful 'pingall' in Mininet prompt (initiated by trellisp4.py). Carmelo suspected that probably 'simple_switch_grpc' might be faulty!

I have been working on this continuously for the past 7 weeks... I made some progress (successful compilation of ONOS, getting the Trellisp4 running), but now I am stuck at not able to pingall between the hosts.
  • Anyone outside the (ONF/Trellis team) is able to get this running successfully?
  • Did anyone face the issues I am facing?
I am curious to know how they are able to solve the issues.

Any help in this would be greatly appreciated. 

Regards,
  --Sreeni Saya


Carmelo Cascone

unread,
Sep 23, 2019, 2:43:58 PM9/23/19
to Sreenivasulu Saya, Charles Chan, Trellis Developers, Yi Tseng
Hi Sreeni,

Something is wrong with your environment. ONOS discovers 16 links when it should be only 8 (each one representing a direction of the 4 bidirectional leaf-spine links of the 2x2 fabric). ONOS discovered DIRECT links between the two leaf switches s204 and s205, and the spines s226 and s227, but these links are not defined in the topology script (trellisp4.py). It seems that the LLDP packet-outs used by ONOS to do topology discovery are replicated on all virtual interfaces created by Mininet to emulate links. 

On which system are you running the Mininet topology? Is it possible that you have Linux IPv4 forwarding enabled?

Carmelo

Charles Chan

unread,
Sep 23, 2019, 2:56:51 PM9/23/19
to Carmelo Cascone, Sreenivasulu Saya, Trellis Developers, Yi Tseng
I also noticed that not all the hosts have been discovered correctly.


Thanks,
Charles Chan, Ph.D.
Member of Technical Staff, Open Networking Foundation

Reply all
Reply to author
Forward
0 new messages