TR: HY22527 Yang changes and IFM flag added for OF-Tunnel 35/90835/11
authorApurba Mukherjee <apurba.mukherjee@ericsson.com>
Thu, 16 Jan 2020 10:42:04 +0000 (16:12 +0530)
committerApurba Mukherjee <apurba.mukherjee@ericsson.com>
Mon, 17 Aug 2020 06:41:24 +0000 (12:11 +0530)
Change-Id: I623167357683d272dca0154a5478c7e7cb95046b
Signed-off-by: Apurba Mukherjee <apurba.mukherjee@ericsson.com>
commons/testutils/src/main/java/org/opendaylight/genius/testutils/itm/ItmRpcTestImpl.java
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java
interfacemanager/interfacemanager-api/src/main/yang/ifm-config.yang
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java
interfacemanager/interfacemanager-impl/src/main/resources/initial/genius-ifm-config.xml
itm/itm-api/src/main/yang/itm-rpc.yang
itm/itm-api/src/main/yang/itm-state.yang
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java

index 75cc7cbdcdd324af81478774844098e9b200e834..fedd63ee8ba37aecd15e2209106014a729347353 100644 (file)
@@ -39,6 +39,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.G
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetExternalTunnelInterfaceNameOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetInternalOrExternalInterfaceNameInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetInternalOrExternalInterfaceNameOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTepIpInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTepIpOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTunnelInterfaceNameInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTunnelInterfaceNameOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTunnelInterfaceNameOutputBuilder;
@@ -137,6 +139,10 @@ public final class ItmRpcTestImpl implements ItmRpcService {
         throw new UnsupportedOperationException("TODO");
     }
 
+    public ListenableFuture<RpcResult<GetTepIpOutput>> getTepIp(GetTepIpInput input) {
+        return null;
+    }
+
     @Override
     public synchronized ListenableFuture<RpcResult<IsTunnelInternalOrExternalOutput>> isTunnelInternalOrExternal(
             IsTunnelInternalOrExternalInput input) {
index afc1ef4df09d5f1880ba243a2c58e988d934487c..1f736eafd145114951342fa2d952aef5649a303b 100644 (file)
@@ -25,5 +25,10 @@ module ifm-config {
           type boolean;
           default false;
        }
+       leaf itm-of-tunnels {
+          description "Enable OF tunnels on ITM Direct Tunnel.";
+          type boolean;
+          default false;
+       }
     }
 }
index ed7f50a6f2d5c6b2380e4a2d2dd90d848b268fbd..227a274c6af1799468c02e352b5641a0550793e6 100644 (file)
@@ -894,4 +894,9 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     public Map getBridgeRefEntryMap() {
         return interfaceMetaUtils.getBridgeRefEntryMap();
     }
+
+    @Override
+    public boolean isItmOfTunnelsEnabled() {
+        return ifmConfig.isItmOfTunnels();
+    }
 }
index 35e04f443f86dcdd90de24ef00a751194343c004..e8fb3420a6bb799b5aa3b523aa0e708cfeaba55f 100644 (file)
@@ -2,4 +2,5 @@
     <ifm-stats-poll-enabled>true</ifm-stats-poll-enabled>
     <ifm-stats-def-poll-interval>15</ifm-stats-def-poll-interval>
     <itm-direct-tunnels>false</itm-direct-tunnels>
+    <itm-of-tunnels>false</itm-of-tunnels>
 </interfacemanager-config>
index 30a2fe6d2f29488defa17be08071de756722cbf6..29b92ba62f8f7b637ca3f42cd004391675febf0e 100644 (file)
@@ -405,4 +405,19 @@ module itm-rpc {
             }
         }
     }
+
+    rpc get-tep-ip {
+        description "used to retrieve local tep ip to use from DPNID";
+        input {
+            leaf dpn-id {
+                type uint64;
+                mandatory true;
+            }
+        }
+        output {
+            leaf tep-ip {
+                type inet:ip-address;
+            }
+        }
+    }
 }
\ No newline at end of file
index 114700161530e8059017b1fe1d58dfcdcf310454..267dfad50d0f83d4ab4c7676c5e067e698e3eec4 100644 (file)
@@ -301,4 +301,69 @@ module itm-state {
             }
         }
     }
+
+    container dpn-tep-config {
+        list of-dpn-tep {
+            key "source-dpn-id";
+            leaf source-dpn-id {
+                type uint64;
+                mandatory true;
+            }
+
+            leaf tunnel-type {
+                type identityref {
+                    base odlif:tunnel-type-base;
+                }
+                mandatory true;
+            }
+
+            leaf of-port-name {
+                type string;
+                mandatory true;
+            }
+
+            leaf tep-ip {
+                type inet:ip-address; //dpnid
+            }
+        }
+    }
+
+    container of-teps-state {
+        config false;
+        list of-tep {
+            key "of-port-name";
+
+            leaf of-port-name {
+                type string;
+            }
+
+            leaf source-dpn-id {
+                type uint64;
+                mandatory true;
+            }
+
+            leaf tunnel-type {
+                type identityref {
+                    base odlif:tunnel-type-base;
+                }
+                mandatory true;
+            }
+
+            leaf tep-ip {
+                type inet:ip-address; //dpnid
+            }
+
+            leaf port-number {
+                type string;
+            }
+
+             leaf if-index {
+                type uint16;
+             }
+
+             leaf of-tep-state {
+                type tunnel-oper-status;
+             }
+        }
+    }
 }
index 93a418558b6c55912f351e43bd37e9cd452bdf55..8118c6aafcf516810fd8eee52d915e3b68fab8d7 100644 (file)
@@ -131,6 +131,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.G
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetInternalOrExternalInterfaceNameInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetInternalOrExternalInterfaceNameOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetInternalOrExternalInterfaceNameOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTepIpInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTepIpOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTunnelInterfaceNameInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTunnelInterfaceNameOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.GetTunnelInterfaceNameOutputBuilder;
@@ -864,6 +866,10 @@ public class ItmManagerRpcService implements ItmRpcService {
         throw new UnsupportedOperationException("TODO");
     }
 
+    public ListenableFuture<RpcResult<GetTepIpOutput>> getTepIp(GetTepIpInput input) {
+        return null;
+    }
+
     @SuppressWarnings("checkstyle:IllegalCatch")
     @Override
     public ListenableFuture<RpcResult<AddL2GwMlagDeviceOutput>> addL2GwMlagDevice(AddL2GwMlagDeviceInput input) {