Open vkotronis opened 10 years ago
That's correct. push and pop were problematic from a compilation perspective, so we punted on them and the virtualization capabilities to focus on functionality we considered higher priority. That said, we'd love (and hope) to eventually resurect the virtualization feature set. (Any volunteers should definitely email me ;-)
It seems that the "pop" and "push" operations that are called within the virt.py are not defined anymore in the imported modules. I looked in the deprecated branch and they were defined as classes there (in language.py), but in the master branch these definitions are gone. For example, if you call a pyretic script (in this case it is just a simple script developed for a school exercise) that imports from virt.py you get the following error: mininet@mininet-vm:~/pyretic$ ./pyretic.py pyretic.examples.ex2_pyretic_main Traceback (most recent call last): File "./pyretic.py", line 192, in
main()
File "./pyretic.py", line 112, in main
module = import_module(module_name)
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/home/mininet/pyretic/pyretic/examples/ex2_pyretic_main.py", line 3, in
from pyretic.lib.virt import *
File "/home/mininet/pyretic/pyretic/lib/virt.py", line 70, in
class lift_packet(DerivedPolicy):
File "/home/mininet/pyretic/pyretic/core/util.py", line 42, in singleton
return f()
File "/home/mininet/pyretic/pyretic/lib/virt.py", line 74, in init
pop("vtag") >>
NameError: global name 'pop' is not defined
It seems that the problem is that the operations needed to "lift" the packet are not there anymore. Hope that the description is helpful. Regarding the script there is nothing really important about it, only that it imports virt.py to use the virtualization functions of pyretic.