blob: a3cbb28a888b81fbeb3fcf268e3c98f78c1ec57d [file] [log] [blame]
Jonathan Hart0961fe82014-04-03 09:56:25 -07001package net.onrc.onos.apps.proxyarp;
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 Hart7c9a2fb2014-03-27 09:51:41 -070016 protected 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 Hart7804bea2014-01-07 10:50:52 -080030}