Mailing List Archive

[PATCH 43/57] tests: enhance bgpd mp attr testing with EVPN RT-2
This feature brings 4 BGPD tests related to attributes testing.
It implies testing BGP messages related to EVPN RT-2 messages.
- Test incoming RT-2 message with 1 NLRI and format correct
- Test incoming RT-2 message with 2 NLRI and format correct
- Test incoming RT-2 message with 1 NLRI and format incorrect
( false mac address length and bad nlri length)

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
---
tests/bgp_mp_attr_test.c | 111 +++++++++++++++++++++++++++++++++++--
tests/bgpd.tests/testbgpmpattr.exp | 5 +-
2 files changed, 111 insertions(+), 5 deletions(-)

diff --git a/tests/bgp_mp_attr_test.c b/tests/bgp_mp_attr_test.c
index 0f0813c01067..0f62099f053d 100644
--- a/tests/bgp_mp_attr_test.c
+++ b/tests/bgp_mp_attr_test.c
@@ -587,7 +587,110 @@ static struct test_segment {
SHOULD_ERR,
AFI_IP6, SAFI_UNICAST, VALID_AFI,
},
-
+ { "EVPN",
+ "EVPN-IPv4 MP Reach, Route type 2, 1 NLRI",
+ {
+ /* AFI / SAFI */ 0x0, AFI_L2VPN, SAFI_EVPN,
+ /* nexthop bytes */ 12,
+ /* RD */ 0,0,0,0,0,0,0,0, /* RD defined to be 0 */
+ /* Nexthop */ 192, 168, 0, 1,
+ /* SNPA (defunct, MBZ) */ 0x0,
+ /* NLRI tuples */
+ 0x2,
+ 41, /* length */
+ 0x0,0x1,0xa,0x7d,0x0,0x1,0x4,0x57, /* RD */
+ 0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7, 0x8, 0x9, /* ESI */
+ 0,0,0,0,
+ 0x30,
+ 0x0,0x12,0xf,0x1,0x2,0x3,
+ 0x20,
+ 0xa,0xa,0xa,0xa,
+ 0x1,0x0,0x1,0x2,0x0,0x1,
+ },
+ (4 + 12 + 1 + (1+1+8+10+4+7+5+6)),
+ SHOULD_PARSE,
+ AFI_L2VPN, SAFI_EVPN, VALID_AFI,
+ },
+ { "EVPN",
+ "EVPN-IPv4 MP Reach, Route type 2, 2 NLRI",
+ {
+ /* AFI / SAFI */ 0x0, AFI_L2VPN, SAFI_EVPN,
+ /* nexthop bytes */ 12,
+ /* RD */ 0, 0, 0, 0, 0,0,0,0, /* RD defined to be 0 */
+ /* Nexthop */ 192, 168, 0, 1,
+ /* SNPA (defunct, MBZ) */ 0x0,
+ /* NLRI tuples */
+ 0x2,
+ 41, /* length */
+ 0x0,0x1,0xa,0x7d,0x0,0x1,0x4,0x57, /* RD */
+ 0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7, 0x8, 0x9, /* ESI */
+ 0,0,0,0,
+ 0x30,
+ 0x0,0x12,0xf,0x1,0x2,0x3,
+ 0x20,
+ 0xa,0xa,0xa,0xa,
+ 0x1,0x0,0x1,0x2,0x0,0x1,
+ 0x2,
+ 41, /* length */
+ 0x0,0x1,0xa,0x7d,0x0,0x1,0x4,0x57, /* RD */
+ 0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7, 0x8, 0x9, /* ESI */
+ 0,0,0,0,
+ 0x30,
+ 0x0,0x12,0xf,0x1,0x2,0x3,
+ 0x20,
+ 0xa,0xa,0xa,0xa,
+ 0x1,0x0,0x1,0x2,0x0,0x1,
+ },
+ (4 + 12 + 1 + (1+1+8+10+4+7+5+6) + (1+1+8+10+4+7+5+6)),
+ SHOULD_PARSE,
+ AFI_L2VPN, SAFI_EVPN, VALID_AFI,
+ },
+ { "EVPN",
+ "EVPN-IPv4 MP Reach, Route type 2, 1 NLRI, Incomplete",
+ {
+ /* AFI / SAFI */ 0x0, AFI_L2VPN, SAFI_EVPN,
+ /* nexthop bytes */ 12,
+ /* RD */ 0, 0, 0, 0,0,0,0,0, /* RD defined to be 0 */
+ /* Nexthop */ 0x2a, 168, 0, 1,
+ /* SNPA (defunct, MBZ) */ 0x0,
+ /* NLRI tuples */
+ 0x2,
+ 0x2a, /* length */
+ 0x0,0x1,0xa,0x7d,0x0,0x1,0x4,0x57, /* RD */
+ 0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7, 0x8, 0x9, /* ESI */
+ 0,0,0,0,
+ 0x30,
+ 0x0,0x12,0xf,0x1,0x2,0x3,
+ 0x20,
+ 0xa,0xa,0xa,0xa
+ },
+ (4 + 12 + 1 + (1+1+8+10+4+7+5)),
+ SHOULD_ERR,
+ AFI_L2VPN, SAFI_EVPN, VALID_AFI,
+ },
+ { "EVPN",
+ "EVPN-IPv4 MP Reach, Route type 2, 1 NLRI, Bad Mac Length",
+ {
+ /* AFI / SAFI */ 0x0, AFI_L2VPN, SAFI_EVPN,
+ /* nexthop bytes */ 12,
+ /* RD */ 0, 0, 0, 0,0,0,0,0, /* RD defined to be 0 */
+ /* Nexthop */ 0x2a, 168, 0, 1,
+ /* SNPA (defunct, MBZ) */ 0x0,
+ /* NLRI tuples */
+ 0x2,
+ 0x2a, /* length */
+ 0x0,0x1,0xa,0x7d,0x0,0x1,0x4,0x57, /* RD */
+ 0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7, 0x8, 0x9, /* ESI */
+ 0,0,0,0,
+ 30,
+ 0x0,0x12,0xf,0x1,0x2,0x3,
+ 0x20,
+ 0xa,0xa,0xa,0xa
+ },
+ (4 + 12 + 1 + (1+1+8+10+4+7+5)),
+ SHOULD_ERR,
+ AFI_L2VPN, SAFI_EVPN, VALID_AFI,
+ },
{ NULL, NULL, {0}, 0, 0}
};

@@ -714,8 +817,8 @@ handle_result (struct peer *peer, struct test_segment *t,
if (bgp_afi_safi_valid_indices ( &afi, &safi) != t->afi_valid)
failed++;

- printf ("MP: %u/%u (%u): recv %u, nego %u\n",
- t->afi, t->safi, safi,
+ printf ("MP: %u/%u (%u/%u): recv %u, nego %u\n",
+ t->afi, t->safi, afi, safi,
peer->afc_recv[afi][safi],
peer->afc_nego[afi][safi]);
}
@@ -773,7 +876,7 @@ parse_test (struct peer *peer, struct test_segment *t, int type)
parse_ret = bgp_mp_unreach_parse (&attr_args, &nlri);
if (parse_ret == 0 && t->afi_valid == VALID_AFI)
assert (nlri.afi == t->afi && nlri.safi == t->safi);
-
+
if (!parse_ret)
{
if (type == BGP_ATTR_MP_REACH_NLRI)
diff --git a/tests/bgpd.tests/testbgpmpattr.exp b/tests/bgpd.tests/testbgpmpattr.exp
index f97ba6986341..1ab602cfaf83 100644
--- a/tests/bgpd.tests/testbgpmpattr.exp
+++ b/tests/bgpd.tests/testbgpmpattr.exp
@@ -30,6 +30,10 @@ simpletest "IPv4-VPNv4-0-nlri: IPv4/VPNv4 MP Reach, RD, Nexthop, 3 NLRI, 3rd 0 b
simpletest "IPv4/VPNv4 MP Reach, RD, NH, 2 NLRI, 2 label in 1st"
simpletest "IPv4/VPNv4 MP Reach, RD, NH, 2 NLRI, bad label in 1st (log, but parse)"
simpletest "IPv6-bug: IPv6, global nexthop, 1 default NLRI"
+simpletest "EVPN-IPv4 MP Reach, Route type 2, 1 NLRI"
+simpletest "EVPN-IPv4 MP Reach, Route type 2, 2 NLRI"
+simpletest "EVPN-IPv4 MP Reach, Route type 2, 1 NLRI, Incomplete"
+simpletest "EVPN-IPv4 MP Reach, Route type 2, 1 NLRI, Bad Mac Length"
simpletest "IPv6-unreach: IPV6 MP Unreach, 1 NLRI"
simpletest "IPv6-unreach2: IPV6 MP Unreach, 2 NLRIs"
simpletest "IPv6-unreach-default: IPV6 MP Unreach, 2 NLRIs + default"
@@ -37,4 +41,3 @@ simpletest "IPv6-unreach-nlri: IPV6 MP Unreach, NLRI bitlen overflow"
simpletest "IPv4-unreach: IPv4 MP Unreach, 2 NLRIs + default"
simpletest "IPv4-unreach-nlrilen: IPv4 MP Unreach, nlri length overflow"
simpletest "IPv4-unreach-VPNv4: IPv4/MPLS-labeled VPN MP Unreach, RD, 3 NLRIs"
-
--
2.1.4


_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev