<div dir="ltr">Hello Aldo,<div><br></div><div>I think that the Thrift server in simple_switch binds to all addresses on a given host. I assumed that when you were asking your plan was to run separate simple_switch instances in different (virtual) hosts and then simply control them from a single place (using separate instances of sswitch_CLI). </div><div><br></div><div>If you want to run multiple instances of simple_switch on the same host, then you can use different port numbers for Thrift.</div><div><br></div><div>Thanks,</div><div>Vladimir</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 10, 2017 at 11:12 AM, Aldo Febro <span dir="ltr"><<a href="mailto:af12abw@gmail.com" target="_blank">af12abw@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks Vladimir for your reply.<div><br></div><div>When I tried to launch simple_switch, it does not accept <font face="monospace, monospace">--thrift-ip</font> as parameter (however it can accept <font face="monospace, monospace">--thrift-port</font> parameter). Are you using simple_switch version that can handle <font face="monospace, monospace">--thrift-ip</font> as a parameter?</div><div><br></div><div>Thanks!</div><div>Aldo</div><div><br></div><div><br></div><div>Below is what I got:</div><div><br></div><div><div><font face="monospace, monospace" color="#0000ff">#./simple_switch --version</font></div><div><font face="monospace, monospace">1.8.0-3bc9a4bc</font></div><div><font face="monospace, monospace"><br></font></div><div><div><font face="monospace, monospace" color="#0000ff">#./simple_switch --json-version</font></div><div><font face="monospace, monospace">2.12</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace" color="#0000ff"># ./simple_switch --thrift-ip</font></div><div><font face="monospace, monospace" color="#ff0000">Error while parsing command line arguments</font></div><div><font face="monospace, monospace"><br></font></div><div><br></div><div><font face="monospace, monospace">Usage: SWITCH_NAME [options] <path to JSON config file></font></div><div><font face="monospace, monospace">Options:</font></div><div><font face="monospace, monospace">  -h [ --help ]            Display this help message</font></div><div><font face="monospace, monospace">  -i [ --interface ] arg   <port-num>@<interface-name>: Attach network</font></div><div><font face="monospace, monospace">                           interface <interface-name> as port <port-num> at</font></div><div><font face="monospace, monospace">                           startup. Can appear multiple times</font></div><div><font face="monospace, monospace">  --pcap                   Generate pcap files for interfaces</font></div><div><font face="monospace, monospace">  --use-files arg          Read/write packets from files (interface X</font></div><div><font face="monospace, monospace">                           corresponds to two files X_in.pcap and X_out.pcap).</font></div><div><font face="monospace, monospace">                           Argument is the time to wait (in seconds) before</font></div><div><font face="monospace, monospace">                           starting to process the packet files.</font></div><div><font face="monospace, monospace">  --packet-in arg          Enable receiving packet on this (nanomsg) socket.</font></div><div><font face="monospace, monospace">                           The --interface options will be ignored.</font></div><div><font face="monospace, monospace">  <font color="#0000ff">--thrift-port arg</font>        TCP port on which to run the Thrift runtime server</font></div><div><font face="monospace, monospace">  --device-id arg          Device ID, used to identify the device in IPC</font></div><div><font face="monospace, monospace">                           messages (default 0)</font></div><div><font face="monospace, monospace">  --nanolog arg            IPC socket to use for nanomsg pub/sub logs (default:</font></div><div><font face="monospace, monospace">                           no nanomsg logging</font></div><div><font face="monospace, monospace">  --log-console            Enable logging on stdout</font></div><div><font face="monospace, monospace">  --log-file arg           Enable logging to given file</font></div><div><font face="monospace, monospace">  -L [ --log-level ] arg   Set log level, supported values are 'trace',</font></div><div><font face="monospace, monospace">                           'debug', 'info', 'warn', 'error', off'; default is</font></div><div><font face="monospace, monospace">                           'trace'</font></div><div><font face="monospace, monospace">  --log-flush              If used with '--log-file', the logger will flush to</font></div><div><font face="monospace, monospace">                           disk after every log message</font></div><div><font face="monospace, monospace">  --notifications-addr arg Specify the nanomsg address to use for notifications</font></div><div><font face="monospace, monospace">                           (e.g. learning, ageing, ...); default is</font></div><div><font face="monospace, monospace">                           ipc:///tmp/bmv2-<device-id>-<wbr>notifications.ipc</font></div><div><font face="monospace, monospace">  --debugger               Activate debugger</font></div><div><font face="monospace, monospace">  --debugger-addr arg      Specify the nanomsg address to use for debugger</font></div><div><font face="monospace, monospace">                           communication; there is no need to use --debugger in</font></div><div><font face="monospace, monospace">                           addition to this option; default is</font></div><div><font face="monospace, monospace">                           ipc:///tmp/bmv2-<device-id>-<wbr>debug.ipc</font></div><div><font face="monospace, monospace">  --restore-state arg      Restore state from file</font></div><div><font face="monospace, monospace">  --dump-packet-data arg   Specify how many bytes of packet data to dump upon</font></div><div><font face="monospace, monospace">                           receiving & sending a packet. We use the logger to</font></div><div><font face="monospace, monospace">                           dump the packet data, with log level 'info', so make</font></div><div><font face="monospace, monospace">                           sure the log level you have set does not exclude</font></div><div><font face="monospace, monospace">                           'info' messages; default is 0, which means that</font></div><div><font face="monospace, monospace">                           nothing is logged.</font></div><div><font face="monospace, monospace">  -v [ --version ]         Display version information</font></div><div><font face="monospace, monospace">  --json-version           Display max bmv2 JSON version supported in the</font></div><div><font face="monospace, monospace">                           format <major>.<minor>; all bmv2 JSON versions with</font></div><div><font face="monospace, monospace">                           the same <major> version number are also supported.</font></div><div><font face="monospace, monospace">  --no-p4                  Enable the switch to start without an inout</font></div><div><font face="monospace, monospace">                           configuration</font></div><div><font face="monospace, monospace">Your target comes with its own command line parser, make sure you separate general bmv2 options from, target specific options with '--'</font></div></div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 9, 2017 at 7:52 PM, Vladimir Gurevich <span dir="ltr"><<a href="mailto:vladimir.gurevich@barefootnetworks.com" target="_blank">vladimir.gurevich@<wbr>barefootnetworks.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello Aldo,<div><br></div><div>runtime_CLI.py (actually you should probably use sswitch_CLI.py if you use simple_switch) accepts --thrift-ip and --thrift-port parameters that allow you to specify the IP address and TCP port number correspondingly.</div><div><br></div><div>Please, note that you will need to start 3 separate instances of sswitch_CLI.py, since one instance can control a single device only.</div><div><br></div><div>Happy hacking,</div><div>Vladimir</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-2492749002921153659h5">On Wed, Aug 9, 2017 at 7:42 PM, Aldo Febro <span dir="ltr"><<a href="mailto:af12abw@gmail.com" target="_blank">af12abw@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-2492749002921153659h5"><div dir="ltr">Hi all,<div><br></div><div>From runtime_CLI.py, I'd like to connect to a P4Switch with IP_address:port (instead of localhost:port) to simulate a control-plane session to multiple remote P4 switches.</div><div><br></div><div>For example, instead of connecting to <br>localhost:9090<br>localhost:9091</div><div>localhost:9092 </div><div><br></div><div>I'd like to connect to:</div><div><a href="http://10.10.10.1:9090" target="_blank">10.10.10.1:9090</a></div><div><a href="http://10.10.20.1:9090" target="_blank">10.10.20.1:9090</a></div><div><a href="http://10.10.30.1:9090" target="_blank">10.10.30.1:9090</a></div><div><br></div><div>Can I assign an IP address to a P4Switch() class when I instantiate/launch simple_switch? <br></div><div><br></div><div>Has anyone tried this? Any help would be appreciated. Thanks!</div><span class="m_-2492749002921153659m_3524583948395683353HOEnZb"><font color="#888888"><div><br></div><div>Aldo</div></font></span></div>
<br></div></div>______________________________<wbr>_________________<br>
P4-dev mailing list<br>
<a href="mailto:P4-dev@lists.p4.org" target="_blank">P4-dev@lists.p4.org</a><br>
<a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" rel="noreferrer" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-dev_lists.p4.org</a><span class="m_-2492749002921153659HOEnZb"><font color="#888888"><br></font></span></blockquote></div><span class="m_-2492749002921153659HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_-2492749002921153659m_3524583948395683353gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><font size="4"><b>Vladimir Gurevich</b></font></div><div><font size="4"><b><br></b></font></div><div><font size="4"><b>Barefoot Networks</b></font></div><div><b><font size="2">Technical Lead, Customer Engineering</font></b></div><div><font size="2">Email: <a href="mailto:vag@barefootnetworks.com" target="_blank">vag@barefootnetworks.com</a></font></div><div><font size="2">Phone: <a href="tel:(408)%20833-4505" value="+14088334505" target="_blank">(408) 833-4505</a></font></div><div><br></div></div></div></div></div>
</font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><font size="4"><b>Vladimir Gurevich</b></font></div><div><font size="4"><b><br></b></font></div><div><font size="4"><b>Barefoot Networks</b></font></div><div><b><font size="2">Technical Lead, Customer Engineering</font></b></div><div><font size="2">Email: <a href="mailto:vag@barefootnetworks.com" target="_blank">vag@barefootnetworks.com</a></font></div><div><font size="2">Phone: (408) 833-4505</font></div><div><br></div></div></div></div></div>
</div>