| package org.onlab.onos.net.packet; |
| |
| import org.onlab.onos.net.flow.TrafficTreatment; |
| |
| /** |
| * Represents context for processing an inbound packet, and (optionally) |
| * emitting a corresponding outbound packet. |
| */ |
| public interface PacketContext { |
| |
| /** |
| * Returns the time when the packet was received. |
| * |
| * @return the time in millis since start of epoch |
| */ |
| long time(); |
| |
| /** |
| * Returns the inbound packet being processed. |
| * |
| * @return inbound packet |
| */ |
| InboundPacket inPacket(); |
| |
| /** |
| * Returns the view of the outbound packet. |
| * |
| * @return outbound packet |
| */ |
| OutboundPacket outPacket(); |
| |
| /** |
| * Returns a builder for constructing traffic treatment. |
| * |
| * @return traffic treatment builder |
| */ |
| TrafficTreatment.Builder treatmentBuilder(); |
| |
| /** |
| * Triggers the outbound packet to be sent. |
| */ |
| void send(); |
| |
| /** |
| * Blocks the outbound packet from being sent from this point onward. |
| * |
| * @return whether the outbound packet is blocked. |
| */ |
| boolean block(); |
| |
| /** |
| * Indicates whether the outbound packet is handled, i.e. sent or blocked. |
| * |
| * @return true uf the packed is handled |
| */ |
| boolean isHandled(); |
| |
| } |