Implementation of the NeighbourResolutionService.
Change-Id: I41fc48578df3027ec71ee7369171c8988ee7a85e
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/neighbour/NeighbourMessageContext.java b/incubator/api/src/main/java/org/onosproject/incubator/net/neighbour/NeighbourMessageContext.java
index 307a783..f498f17 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/neighbour/NeighbourMessageContext.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/neighbour/NeighbourMessageContext.java
@@ -24,8 +24,6 @@
import org.onosproject.incubator.net.intf.Interface;
import org.onosproject.net.ConnectPoint;
-import static com.google.common.base.Preconditions.checkState;
-
/**
* Context of an incoming neighbor message (e.g. ARP, NDP).
*
@@ -34,156 +32,91 @@
* response to the incoming message.</p>
*/
@Beta
-public class NeighbourMessageContext {
-
- private final NeighbourProtocol protocol;
- private final NeighbourMessageType type;
-
- private final IpAddress target;
- private final IpAddress sender;
-
- private final Ethernet eth;
- private final ConnectPoint inPort;
-
- private final NeighbourMessageActions actions;
-
- /**
- * Creates a new neighbour message context.
- *
- * @param actions actions
- * @param eth ethernet frame
- * @param inPort incoming port
- * @param protocol message protocol
- * @param type message type
- * @param target target IP address
- * @param sender sender IP address
- */
- public NeighbourMessageContext(NeighbourMessageActions actions,
- Ethernet eth, ConnectPoint inPort,
- NeighbourProtocol protocol, NeighbourMessageType type,
- IpAddress target, IpAddress sender) {
- this.actions = actions;
- this.eth = eth;
- this.inPort = inPort;
- this.protocol = protocol;
- this.type = type;
- this.target = target;
- this.sender = sender;
- }
-
+public interface NeighbourMessageContext {
/**
* Gets the port where the packet came in to the network.
*
* @return connect point
*/
- public ConnectPoint inPort() {
- return inPort;
- }
+ ConnectPoint inPort();
/**
* Gets the full parsed representation of the packet.
*
* @return ethernet header
*/
- public Ethernet packet() {
- return eth;
- }
+ Ethernet packet();
/**
* Gets the protocol of the packet.
*
* @return protocol
*/
- public NeighbourProtocol protocol() {
- return protocol;
- }
+ NeighbourProtocol protocol();
/**
* Gets the message type of the packet.
*
* @return message type
*/
- public NeighbourMessageType type() {
- return type;
- }
+ NeighbourMessageType type();
/**
* Gets the vlan of the packet, if any.
*
* @return vlan
*/
- public VlanId vlan() {
- return VlanId.vlanId(eth.getVlanID());
- }
+ VlanId vlan();
/**
* Gets the source MAC address of the message.
*
* @return source MAC address
*/
- public MacAddress srcMac() {
- return MacAddress.valueOf(eth.getSourceMACAddress());
- }
+ MacAddress srcMac();
/**
* Gets the target IP address of the message.
*
* @return target IP address
*/
- public IpAddress target() {
- return target;
- }
+ IpAddress target();
/**
* Gets the source IP address of the message.
*
* @return source IP address
*/
- public IpAddress sender() {
- return sender;
- }
+ IpAddress sender();
/**
* Proxies the message to a given output port.
*
* @param outPort output port
*/
- public void proxy(ConnectPoint outPort) {
- actions.proxy(this, outPort);
- }
+ void proxy(ConnectPoint outPort);
/**
* Proxies the message to a given interface.
*
* @param outIntf output interface
*/
- public void proxy(Interface outIntf) {
- actions.proxy(this, outIntf);
- }
+ void proxy(Interface outIntf);
/**
* Replies to the request message with a given MAC address.
*
* @param targetMac target MAC address
*/
- public void reply(MacAddress targetMac) {
- checkState(type == NeighbourMessageType.REQUEST, "can only reply to requests");
-
- actions.reply(this, targetMac);
- }
+ void reply(MacAddress targetMac);
/**
* Floods the incoming message out all ports except the input port.
*/
- public void flood() {
- actions.flood(this);
- }
+ void flood();
/**
* Drops the incoming message.
*/
- public void drop() {
- actions.drop(this);
- }
-
+ void drop();
}