Hello murphy i have developed a pox controller in python IDLE. i tried to use RUN MODULE/ CHECK MODULE to check for syntax errors before i log it on my VM. i get this syntax:
:there is an error in your program-syntax error: (msg). do you know how i can fix that? msg = nx.nx_flow_mod() msg.data = event.ofp msg.table_id = 0 msg.priority = 3323 msg.idle_timeout = OFP_FLOW_PERMANENT msg.hard_timeout = OFP_FLOW_PERMANENT msg.flags = 1 msg = of.ofp_match() msg.match.in_port = 3 msg.match.dl_src = (EthAddr("b1:fe:aa:6e:76:5c")) #Host1 Mac address msg.match.dl_dst = (EthAddr("0")) # No dst Mac address. msg.match.dl_type = pkt.ethernet.IP_TYPE msg.match.nw_src = (IPAddr("192.168.20.1") #Host1 IP address msg.match.nw_dst = (IPAddr("192.168.48.0"), 24)# msg.match.nw_proto = pkt.ipv4.UDP_PROTOCOL msg.match.tp_dst = 5004 msg.actions.append(of.ofp_action_output(port = 4)) # packet forward to the StreamingServer (output port) event.connection.send(msg) log.debug("Installing %s.%i -> %s.%i AND %s.%i -> %s.%i" % (packet.dst, dst_port, packet.src, event.ofp.in_port, packet.src, event.ofp.in_port, packet.dst, dst_port)) thanks kofi On Wednesday, April 16, 2014 8:52 PM, Murphy McCauley <murphy.mccau...@gmail.com> wrote: On Apr 16, 2014, at 3:27 AM, Shiyao Ma <i...@introo.me> wrote: Hi. > >I am following >https://github.com/noxrepo/pox/blob/carp/pox/forwarding/l2_learning.py#L121 >I wonder where is the corresponding source for that event obj (The relevant >class definition), so I can know what the event.attr stands for and how many >attrs the event has. > This is a PacketIn event handler, so the event object is a PacketIn. You can either grep the codebase for "class PacketIn", or you can look up the PacketIn event in the POX manual. It's in a subsection called "PacketIn" under "OpenFlow Events: Responding to Switches". Also, I'd like to know the relevant class for the connection object. https://github.com/noxrepo/pox/blob/carp/pox/forwarding/l2_learning.py#L86 > The connection object is from a class called Connection. You can search the codebase for "class Connection", or you can look it up in the manual. It's in a subsection called "Connection Objects". For either or both of these, you could also use Python to find the answers for you. For example, to find the class of the connection, object, insert the following near line 86 of l2_learning: import inspect print inspect.getsourcefile(type(connection)), inspect.getsourcelines(type(connection))[1] Et voila, it'll print out the file and line number of the class. Or simply insert "help(connection)" to get the whole pydoc for it. Or save it to a global variable, run the POX "py" module, and then do "help(<global variable name>)" from the commandline. Hope that helps. -- Murphy Thanks and regards. > >-- > > > >吾輩は猫である。ホームーページはhttp://introo.me。 >