Skip to content
This repository has been archived by the owner on Jun 27, 2018. It is now read-only.

Running Pyretic

James Guthrie edited this page Jun 1, 2015 · 4 revisions

Run Pyretic from the command line using pyretic.py, e.g.,

$ pyretic.py -m p0 pyretic.modules.mac_learner

The -m flag indicates the Pyretic runtime's mode of operation.

  • interpreted (i) - every packet is processed in the controller runtime. Unsurprisingly slow, but useful for debugging.
  • reactive (r0) - rules are reactively pushed to switches based on the Pyretic policy and the packets seen.
  • proactive (p0) - rules are proactively pushed to switches based on the Pyretic policy. Generally the highest performant mode currently available.

Arguments can be passed into the main() method of your module:

$ pyretic.py -m p0 my.custom.module --foo=bar

Additional (non-pyretic) arguments passed with --key=value are parsed by pyretic and passed into main() using the **kwargs paradigm.

Our typical mininet workflow on the Pyretic VM uses screen

$ screen -S test 

from within screen ctrl-a ctrl-c opens a second screen (ctrl-a, ctrl-a toggles between the two). In one screen run mininet, in the other run the pyretic. (TIP: start pyretic first for quicker hookup w/ mininet) Each example file in pyretic/pyretic/examples contains instructions regarding mininet setup and testing.

Clone this wiki locally