blob: 30e3986770c23a27a3e3e638258a0202230959dc [file] [log] [blame]
Jonathan Hart313fdf02014-04-10 14:09:46 -07001package net.onrc.onos.core.packetservice;
Jonathan Hart7804bea2014-01-07 10:50:52 -08002
3import java.io.Serializable;
Jonathan Hart8ed69c52014-04-09 13:29:16 -07004import java.util.Arrays;
Jonathan Hart7804bea2014-01-07 10:50:52 -08005
6/**
7 * A PacketOutNotification contains data sent between ONOS instances that
Jonathan Hart7c9a2fb2014-03-27 09:51:41 -07008 * directs other instances to send a packet out a set of ports. This is an
9 * abstract base class that will be subclassed by specific types of
10 * notifications.
Jonathan Hart7804bea2014-01-07 10:50:52 -080011 */
Ray Milkey269ffb92014-04-03 14:43:30 -070012public abstract class PacketOutNotification implements Serializable {
Jonathan Hart7804bea2014-01-07 10:50:52 -080013
Jonathan Hart7c9a2fb2014-03-27 09:51:41 -070014 private static final long serialVersionUID = 1L;
Jonathan Hart7804bea2014-01-07 10:50:52 -080015
Jonathan Hart313fdf02014-04-10 14:09:46 -070016 private final byte[] packet;
Ray Milkey269ffb92014-04-03 14:43:30 -070017
Jonathan Hart7c9a2fb2014-03-27 09:51:41 -070018 /**
19 * Class constructor.
Ray Milkey269ffb92014-04-03 14:43:30 -070020 *
Jonathan Hart7c9a2fb2014-03-27 09:51:41 -070021 * @param packet the packet data to send in the packet-out
22 */
TeruU7feef8a2014-04-03 00:15:49 -070023 public PacketOutNotification() {
Ray Milkey269ffb92014-04-03 14:43:30 -070024 packet = null;
TeruU7feef8a2014-04-03 00:15:49 -070025 }
Ray Milkey269ffb92014-04-03 14:43:30 -070026
Jonathan Hart7c9a2fb2014-03-27 09:51:41 -070027 public PacketOutNotification(byte[] packet) {
Jonathan Hart8ed69c52014-04-09 13:29:16 -070028 this.packet = Arrays.copyOf(packet, packet.length);
Jonathan Hart7c9a2fb2014-03-27 09:51:41 -070029 }
Jonathan Hart313fdf02014-04-10 14:09:46 -070030
31 public byte[] getPacketData() {
32 return Arrays.copyOf(packet, packet.length);
33 }
Jonathan Hart7804bea2014-01-07 10:50:52 -080034}