Skip to content

Commit

Permalink
Merge "Add Mobility info to xmpp enet and inet message"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Dec 14, 2016
2 parents a3423af + e039251 commit 4def26d
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 3 deletions.
32 changes: 31 additions & 1 deletion src/schema/test/xmpp_unicast_test.cc
Expand Up @@ -55,10 +55,39 @@ TEST_F(QueryTest, Decode) {
xdoc_.reset();
}

TEST_F(QueryTest, Decode_1) {
pugi::xml_parse_result result =
xdoc_.load_file("controller/src/schema/testdata/bgp_l3vpn_unicast_3.xml");
EXPECT_TRUE(result);

pugi::xml_node node = xdoc_.first_child();
if (node.type() != pugi::node_null) {
EntryType::XmlParseProperty(node, &xparser_);

EntryType *entryp_;
entryp_ = (static_cast<EntryType *>(xparser_.get()));

EXPECT_EQ(entryp_->nlri.af, 1);
ASSERT_STREQ(entryp_->nlri.address.c_str(), "10.1.2.1/32");

EXPECT_EQ(entryp_->next_hops.next_hop[0].af, 1);
ASSERT_STREQ(entryp_->next_hops.next_hop[0].address.c_str(),
"infrastructure-ip-address");
EXPECT_EQ(entryp_->next_hops.next_hop[0].label, 10000);
EXPECT_EQ(entryp_->version, 1);
EXPECT_EQ(entryp_->mobility.seqno, 5);
EXPECT_EQ(entryp_->mobility.sticky, false);
}
xdoc_.reset();
}


TEST_F(QueryTest, Encode) {
EntryType entryp_;

entryp_.version = 2;
entryp_.mobility.seqno = 2;
entryp_.mobility.sticky = true;
entryp_.nlri.af = 1;
entryp_.nlri.address = "10.2.2.2";

Expand All @@ -72,7 +101,6 @@ TEST_F(QueryTest, Encode) {
pugi::xml_node node = xdoc_.root();
pugi::xml_node node_p = node.append_child("entry");
entryp_.Encode(&node_p);

node = xdoc_.first_child();
if (node.type() != pugi::node_null) {
EntryType::XmlParseProperty(node, &xparser_);
Expand All @@ -86,6 +114,8 @@ TEST_F(QueryTest, Encode) {
ASSERT_STREQ(entryp2_->next_hops.next_hop[0].address.c_str(),
"20.2.2.2");
EXPECT_EQ(entryp2_->version, 2);
EXPECT_EQ(entryp2_->mobility.seqno, 2);
EXPECT_EQ(entryp2_->mobility.sticky, true);
EXPECT_EQ(entryp2_->next_hops.next_hop[0].label, 1000);
}
xdoc_.reset();
Expand Down
26 changes: 26 additions & 0 deletions src/schema/testdata/bgp_l3vpn_unicast_3.xml
@@ -0,0 +1,26 @@
<entry xmlns='http://ietf.org/protocol/bgpvpn'>
<nlri>
<af>1</af>
<address>10.1.2.1/32</address>
</nlri>
<version>1</version>
<mobility seqno="5" sticky="false"/>
<next-hops>
<next-hop>
<af>1</af>
<address>infrastructure-ip-address</address>
<label>10000</label>
</next-hop>
</next-hops>
</entry>


<!--
<entry xmlns='http://ietf.org/protocol/bgpvpn'>
<nlri af='1'>10.1.2.1/32</nlri>
<next-hops-list>
<next-hop af='1' label='10000'>'infrastructure-ip-address'</next-hop>
</next-hops-list>
<version>1</version>
</entry>
-->
8 changes: 7 additions & 1 deletion src/schema/xmpp_enet.xsd
Expand Up @@ -46,14 +46,20 @@ xsd:targetNamespace="http://www.contrailsystems.com/xmpp-enet-cfg.xsd">
<xsd:element name="security-group" type="xsd:integer" maxOccurs="unbounded"/>
</xsd:complexType>

<xsd:complexType name="EnetMobilityType">
<xsd:attribute name="sticky" type="xsd:boolean"/>
<xsd:attribute name="seqno" type="xsd:integer"/>
</xsd:complexType>

<xsd:complexType name="EnetEntryType">
<xsd:all>
<xsd:element name="nlri" type="EnetAddressType"/>
<xsd:element name="next-hops" type="EnetNextHopListType"/>
<xsd:element name="olist" type="EnetOlistType"/>
<xsd:element name="virtual-network" type="xsd:string"/>
<xsd:element name="mobility" type="EnetMobilityType"/>
<!-- sequence-number is deprecated in favor of mobility -->
<xsd:element name="sequence-number" type="xsd:integer"/>
<xsd:element name="sticky" type="xsd:boolean" default="false"/>
<xsd:element name="security-group-list" type="EnetSecurityGroupListType"/>
<xsd:element name="local-preference" type="xsd:integer"/>
<xsd:element name="med" type="xsd:integer"/>
Expand Down
8 changes: 7 additions & 1 deletion src/schema/xmpp_unicast.xsd
Expand Up @@ -71,14 +71,20 @@ xsd:targetNamespace="http://www.contrailsystems.com/bgp-l3vpn-unicast-cfg.xsd">
<xsd:element name="load-balance-decision" type="LoadBalanceDecisionType" default="field-hash"/>
</xsd:complexType>

<xsd:complexType name="MobilityType">
<xsd:attribute name="sticky" type="xsd:boolean"/>
<xsd:attribute name="seqno" type="xsd:integer"/>
</xsd:complexType>

<xsd:complexType name="EntryType">
<xsd:all>
<xsd:element name="nlri" type="IPAddressType"/>
<xsd:element name="next-hops" type="NextHopListType"/>
<xsd:element name="version" type="xsd:integer"/>
<xsd:element name="virtual-network" type="xsd:string"/>
<xsd:element name="mobility" type="MobilityType"/>
<!-- sequence-number is deprecated in favor of mobility -->
<xsd:element name="sequence-number" type="xsd:integer"/>
<xsd:element name="sticky" type="xsd:boolean" default="false"/>
<xsd:element name="security-group-list" type="SecurityGroupListType"/>
<xsd:element name="community-tag-list" type="CommunityTagListType"/>
<xsd:element name="local-preference" type="xsd:integer"/>
Expand Down

0 comments on commit 4def26d

Please sign in to comment.