aspa table at;
+# ASPA structure:
+#
+#
+# 65544 65545
+# | \ / \ / |
+# 65540 65542 65543 65541
+# | |
+# 65550 65551
+
protocol static
{
aspa { table at; };
- route aspa 65540 providers 65544;
+ route aspa 65540 providers 65544, 65549;
route aspa 65541 providers 65545;
route aspa 65542 providers 65544, 65545;
route aspa 65543 providers 65544, 65545;
p3.prepend(65544);
bt_assert(aspa_check(at, p3, false) = ASPA_INVALID);
bt_assert(aspa_check(at, p3, true) = ASPA_INVALID);
+
+ bgppath p4 = +empty+;
+ p4.prepend(65540);
+ p4.prepend(65544);
+
+ bt_assert(aspa_check(at, p4, false) = ASPA_VALID);
+ bt_assert(aspa_check(at, p4, true) = ASPA_VALID);
+
+ p4.prepend(65545);
+
+ bt_assert(aspa_check(at, p4, false) = ASPA_VALID);
+ bt_assert(aspa_check(at, p4, true) = ASPA_INVALID);
+
+ p4.prepend(65555);
+
+ bt_assert(aspa_check(at, p4, false) = ASPA_UNKNOWN);
+ bt_assert(aspa_check(at, p4, true) = ASPA_INVALID);
+
+ bgppath p5 = +empty+.prepend(65550).prepend(65540).prepend(65549);
+ bt_assert(aspa_check(at, p5, false) = ASPA_VALID);
+ bt_assert(aspa_check(at, p5, true) = ASPA_VALID);
}
bt_test_suite(t_aspa_check, "Testing ASPA (our tests)");