Packet-out messages restrictions
Ingress port
If a Normal, Local, In Port, or Controller reserved port is used as the output port in a Packet-out message, the ingress port must be a physical port or logical port.
Buffer ID co-existing with packet
If a Packet-out message contains both the packet and the buffer ID referencing the packet stored in the switch, the switch only processes the buffered packet and ignores the packet in the message.
Packets without a VLAN tag
If a Packet-out packet haves no VLAN tag, the switch processes the packet as follows:
If the ingress port is a physical or logical port, the switch tags the packet with the PVID of the ingress port and forwards the packet within the VLAN.
If the ingress port is a reserved port and the output port is a physical or logical port, the switch tags the packet with the PVID of the output port and forwards the packet within the VLAN.
If the ingress port is a reserved port and the output port is the Flood or All reserved port, the switch processes the packet as described in "Output port."
Output port
If the output port of a Packet-out packet is the Flood or All reserved port, the switch processes the packet as follows:
When the output port is the Flood reserved port:
If the Packet-out packet has a VLAN tag, the switch broadcasts the packet within the VLAN.
If the Packet-out packet has no VLAN tag and the ingress port is a physical or logical port, the switch tags the packet with the PVID of the ingress port. The switch then forwards the packet within the VLAN.
If the Packet-out packet has no VLAN tag and the ingress port is the Controller reserved port, the switch forwards the packet out all OpenFlow ports.
When the output port is the All reserved port:
If the Packet-out packet has a VLAN tag, the switch broadcasts the packet within the VLAN.
If the Packet-out packet has no VLAN tag, the switch forwards the packet out of all OpenFlow ports regardless of the ingress port type.