Add linkstate information to RIB 63/2063/2
authorRobert Varga <rovarga@cisco.com>
Tue, 22 Oct 2013 05:49:56 +0000 (07:49 +0200)
committerRobert Varga <rovarga@cisco.com>
Wed, 23 Oct 2013 08:42:16 +0000 (10:42 +0200)
Change-Id: Iee0c5bcf5cd60de7f4db95b93ba6d153fa9d7b4f
Signed-off-by: Robert Varga <rovarga@cisco.com>
bgp/linkstate/src/main/yang/bgp-linkstate.yang
integration-tests/src/test/java/org/opendaylight/protocol/integration/BgpLinkstateBundleTest.java

index 131bf9013d1b755ecf48df62ecd75407a4b219e4..7307901a45d8c06db555b12f28a5a9f358240cd7 100644 (file)
@@ -7,9 +7,10 @@ module bgp-linkstate {
                prefix inet;
                revision-date 2010-09-24;
        }
-       import bgp-message { prefix bgp-msg;}
-       import bgp-multiprotocol { prefix bgp-mp;}
-       import bgp-types { prefix bgp-t;}
+       import bgp-message { prefix bgp-msg; }
+       import bgp-multiprotocol { prefix bgp-mp; }
+       import bgp-rib { prefix bgp-rib; }
+       import bgp-types { prefix bgp-t; }
        import nps-concepts { prefix nps-c;}
        import rsvp { prefix rsvp; revision-date 2013-08-20; }
 
@@ -544,4 +545,68 @@ module bgp-linkstate {
                        }
                }
        }
+
+       augment "/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" {
+               case linkstate-routes {
+                       container linkstate-routes {
+                               leaf distinguisher {
+                                       type bgp-ls:route-distinguisher;
+                               }
+                               leaf protocol-id {
+                                       type bgp-ls:protocol-id;
+                               }
+                               leaf identifier {
+                                       type bgp-ls:identifier;
+                               }
+
+                               choice object-type {
+                                       case node {
+                                               container node-descriptors {
+                                                       uses bgp-ls:node-identifier;
+                                               }
+                                       }
+                                       case link {
+                                               container local-node-descriptors {
+                                                       uses bgp-ls:node-identifier;
+                                               }
+                                               container remote-node-descriptors {
+                                                       uses bgp-ls:node-identifier;
+                                               }
+                                               container link-descriptors {
+                                                       uses bgp-ls:link-identifiers;
+                                                       leaf ipv4-interface-address {
+                                                               type bgp-ls:ipv4-interface-identifier;
+                                                       }
+                                                       leaf ipv6-interface-address {
+                                                               type bgp-ls:ipv6-interface-identifier;
+                                                       }
+                                                       leaf ipv4-neighbor-address {
+                                                               type bgp-ls:ipv4-interface-identifier;
+                                                       }
+                                                       leaf ipv6-neighbor-address {
+                                                               type bgp-ls:ipv6-interface-identifier;
+                                                       }
+                                                       leaf multi-topology-id {
+                                                               type bgp-ls:topology-identifier;
+                                                       }
+                                               }
+                                       }
+                                       case prefix {
+                                               leaf multi-topology-id {
+                                                       type bgp-ls:topology-identifier;
+                                               }
+                                               leaf ospf-route-type {
+                                                       when "../../protocol-id = 'ospf'";
+                                                       type bgp-ls:ospf-route-type;
+                                               }
+                                               leaf ip-reachability-information {
+                                                       type inet:ip-prefix;
+                                               }
+                                       }
+                               }
+
+                               uses bgp-rib:route;
+                       }
+               }
+       }
 }
index 97d46e3e7b3df3dfe84d8d55c52bae37dda35591..7f00a96e44db4d8b3ad2078130f017b2e06748e3 100644 (file)
@@ -14,7 +14,7 @@ import com.google.common.collect.Lists;
 public final class BgpLinkstateBundleTest extends AbstractBundleTest {
        @Override
        protected Collection<String> prerequisiteBundles() {
-               return Lists.newArrayList("bgp-concepts", "bgp-parser-api", "bgp-parser-spi", "concepts", "framework", "rsvp-api", "util");
+               return Lists.newArrayList("bgp-concepts", "bgp-parser-api", "bgp-parser-spi", "bgp-rib-api", "concepts", "framework", "rsvp-api", "util");
        }
 
        @Override