[pox-dev] Send packet_out problem
Murphy McCauley
murphy.mccauley at gmail.com
Fri Apr 11 01:01:02 PDT 2014
See "Working with Addresses" in the manual. Ethernet addresses in POX are of class EthAddr, not strings. You should compare against EthAddr("00:00:00:00:00:01").
Some other comments inline.
On Apr 10, 2014, at 11:07 PM, Chanthan Hel <hel.chanthan65 at gmail.com> wrote:
> Dear all,
> I want to send the packet out of the switch port and I write the code.
>
> # Method for just sending a packet to any port (broadcast by default)
> def send_packet (event,dst_port):
> msg = of.ofp_packet_out(in_port=event.ofp.in_port)
> if event.ofp.buffer_id != -1 and event.ofp.buffer_id is not None:
It should never be -1. Ever. If it is ever -1, it's a bug.
> # We got a buffer ID from the switch; use that
> msg.buffer_id = event.ofp.buffer_id
> else:
> # No buffer ID from switch -- we got the raw data
> if event.ofp.data:
This logic appears backwards.
> # No raw_data specified -- nothing to send!
> return
> msg.data = event.ofp.data
> msg.actions.append(of.ofp_action_output(port = dst_port))
> event.connection.send(msg)
This above function is redundant.
po = of.ofp_packet_out(data = event.ofp) should do it.
> ## Create packet flow
> def _handle_PacketIn (event):
> packet = event.parsed
> if packet.src == "00:00:00:00:00:01":
> send_packet(event, 2)
> else:
> send_packet(event, 3)
>
> def launch ():
> core.openflow.addListenerByName("PacketIn", _handle_PacketIn)
>
> When packet arrive at switch although it have mac address "00:00:00:00:00:01" , it always go to the else condition
> " else:
> send_packet(event, 3)"
> Please give me some suggestion
> Chanhan
>
> --
> Mr. Chanthan Hel
> Electrical engineering, Faculty of Engineering,
> Chulalongkorn University (CU)
>
> *Phone: +66 81 456 84 27*
>
More information about the pox-dev
mailing list