blob: 53891ef3bf846d482b491181ff5042e01915e1b6 [file] [log] [blame]
Jonathan Hartd3003252013-11-15 09:44:46 -08001package net.onrc.onos.ofcontroller.proxyarp;
2
3import java.io.Serializable;
4import java.net.InetAddress;
5import java.util.ArrayList;
6import java.util.List;
7
8import net.onrc.onos.ofcontroller.util.SwitchPort;
9
10public class ArpMessage implements Serializable {
11
12 /**
13 *
14 */
15 private static final long serialVersionUID = 1L;
16
17 private final Type type;
18 private final InetAddress forAddress;
19 private final byte[] packetData;
20
21 private final List<SwitchPort> switchPorts = new ArrayList<SwitchPort>();
22
23 public enum Type {
24 REQUEST,
25 REPLY
26 }
27
28 private ArpMessage(Type type, InetAddress address, byte[] eth) {
29 // TODO Auto-generated constructor stub
30 this.type = type;
31 this.forAddress = address;
32 this.packetData = eth;
33 }
34
35 private ArpMessage(Type type, InetAddress address) {
36 this.type = type;
37 this.forAddress = address;
38 this.packetData = null;
39 }
40
41 public static ArpMessage newRequest(InetAddress forAddress, byte[] arpRequest) {
42 return new ArpMessage(Type.REQUEST, forAddress, arpRequest);
43 }
44
45 public static ArpMessage newReply(InetAddress forAddress) {
46 return new ArpMessage(Type.REPLY, forAddress);
47 }
48
49 public Type getType() {
50 return type;
51 }
52
53 public InetAddress getAddress() {
54 return forAddress;
55 }
56
57 public byte[] getPacket() {
58 return packetData;
59 }
60}