Add support for ARP_TPA, ARP_THA Set Field Instructions
Signed-off-by: souvikdas95 <souvikdas95@yahoo.co.in>
Change-Id: I9fe44d8ece8dd268bff4ec4befc31a8ea24ac9aa
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java
index 72cfd3f..ffad4f7 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java
@@ -505,6 +505,16 @@
}
@Override
+ public Builder setArpTpa(IpAddress addr) {
+ return add(Instructions.modArpTpa(addr));
+ }
+
+ @Override
+ public Builder setArpTha(MacAddress addr) {
+ return add(Instructions.modArpTha(addr));
+ }
+
+ @Override
public Builder setArpOp(short op) {
return add(Instructions.modL3ArpOp(op));
}
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
index 50c3018..9fde774 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
@@ -420,6 +420,22 @@
Builder setArpSha(MacAddress addr);
/**
+ * Sets the arp dst ip address.
+ *
+ * @param addr an ip
+ * @return a treatment builder
+ */
+ Builder setArpTpa(IpAddress addr);
+
+ /**
+ * Sets the arp dst mac address.
+ *
+ * @param addr a macaddress
+ * @return a treatment builder
+ */
+ Builder setArpTha(MacAddress addr);
+
+ /**
* Sets the arp operation.
*
* @param op the value of arp operation.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
index d1fc61f..621c007 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
@@ -321,6 +321,28 @@
}
/**
+ * Creates a L3 ARP IP src modification.
+ *
+ * @param addr the ip address to modify to
+ * @return a L3 modification
+ */
+ public static L3ModificationInstruction modArpTpa(IpAddress addr) {
+ checkNotNull(addr, "Dst l3 ARP IP address cannot be null");
+ return new ModArpIPInstruction(L3SubType.ARP_TPA, addr);
+ }
+
+ /**
+ * Creates a l3 ARP Ether src modification.
+ *
+ * @param addr the mac address to modify to
+ * @return a l3 modification
+ */
+ public static L3ModificationInstruction modArpTha(MacAddress addr) {
+ checkNotNull(addr, "Dst l3 ARP address cannot be null");
+ return new ModArpEthInstruction(L3SubType.ARP_THA, addr);
+ }
+
+ /**
* Creates a l3 ARP operation modification.
*
* @param op the ARP operation to modify to
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java
index cc15360..9edbdb8 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java
@@ -82,6 +82,16 @@
ARP_SHA,
/**
+ * ARP IP dst modification.
+ */
+ ARP_TPA,
+
+ /**
+ * ARP Ether dst modification.
+ */
+ ARP_THA,
+
+ /**
* Arp operation modification.
*/
ARP_OP,