From df0b4ba0aeba27458b0f1d0ed35e8127bf980f80 Mon Sep 17 00:00:00 2001 From: Paul-weqe Date: Sun, 21 Jun 2026 18:10:44 +0300 Subject: [PATCH 1/2] bgp: add Collision Checking and Prevention RFC 4271 describes collision detection and methods towards fixing them. This PR implements both. Signed-off-by: Paul Wekesa --- holo-bgp/src/events.rs | 47 +++++++++++++++++++++----- holo-bgp/src/neighbor.rs | 72 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 8 deletions(-) diff --git a/holo-bgp/src/events.rs b/holo-bgp/src/events.rs index 19047edf3..6a60fa3cf 100644 --- a/holo-bgp/src/events.rs +++ b/holo-bgp/src/events.rs @@ -44,10 +44,9 @@ pub(crate) fn process_tcp_accept( return Ok(()); }; - // Workaround to prevent connection collision until collision resolution - // is implemented. - if nbr.conn_info.is_some() { - return Ok(()); + // Flags existence of a collision. + if let Some(local_conn_info) = &nbr.conn_info { + nbr.in_collision = collision_detection(local_conn_info, &conn_info); } // Initialize the accepted stream. @@ -80,10 +79,9 @@ pub(crate) fn process_tcp_connect( }; nbr.tasks.connect = None; - // Workaround to prevent connection collision until collision resolution - // is implemented. - if nbr.conn_info.is_some() { - return Ok(()); + // Flags existence of a collision. + if let Some(peer_conn_info) = &nbr.conn_info { + nbr.in_collision = collision_detection(&conn_info, peer_conn_info); } // Invoke FSM event. @@ -92,6 +90,17 @@ pub(crate) fn process_tcp_connect( Ok(()) } +// ===== Flags for Collision existence ==== + +fn collision_detection( + local_conn_info: &TcpConnInfo, + peer_conn_info: &TcpConnInfo, +) -> bool { + // Returns true if a collision has happened. + (local_conn_info.local_addr == peer_conn_info.local_addr) + && (local_conn_info.remote_addr == peer_conn_info.remote_addr) +} + // ===== neighbor message receipt ===== pub(crate) fn process_nbr_msg( @@ -117,6 +126,28 @@ pub(crate) fn process_nbr_msg( match msg { Message::Open(msg) => { + // Collision Prevention. + let peer_id = nbr.identifier; + let _ = nbr; + let collision_resolved = if nbr.in_collision { + Neighbor::collision_prevention( + peer_id, + msg.identifier, + instance, + neighbors, + ) + } else { + true + }; + let Some(nbr) = neighbors.get_mut(&nbr_addr) else { + return Ok(()); + }; + + if collision_resolved { + nbr.in_collision = false; + } + + // Make sure to clarify we are no longer in collision. nbr.fsm_event(instance, fsm::Event::RcvdOpen(msg)); } Message::Update(msg) => { diff --git a/holo-bgp/src/neighbor.rs b/holo-bgp/src/neighbor.rs index 927bd6c73..181fdbd59 100644 --- a/holo-bgp/src/neighbor.rs +++ b/holo-bgp/src/neighbor.rs @@ -67,6 +67,7 @@ pub struct Neighbor { pub tasks: NeighborTasks, pub update_queues: NeighborUpdateQueues, pub msg_txp: Option>, + pub in_collision: bool, } // BGP peer type. @@ -214,9 +215,62 @@ impl Neighbor { tasks: Default::default(), update_queues: Default::default(), msg_txp: None, + in_collision: false, } } + /// Carries out the collision prevention procedure. + /// + /// # Arguments + /// * `current_peer_id` - peer ID that we have saved locally. + /// * `incoming_peer_id` - peer ID from the incoming OpenMsg. + /// * `instance` + /// * `neighbors` - list of neighbors. Needed when filtering through those with matching characteristics + /// + /// * Returns + /// + /// Returns true if the collision prevention procedure led to the closure of a connection + /// binded to a neighbor that is not the one sending the OPEN Message. + /// + /// Rturns false it returns false meaning it has not yet been handled, and the session to be + /// closed is the one that has just sent this OPEN message. This will be handled in + /// fsm_event() + pub(crate) fn collision_prevention( + current_peer_id: Option, + incoming_peer_id: Ipv4Addr, + instance: &mut InstanceUpView<'_>, + neighbors: &mut Neighbors, + ) -> bool { + if let (Some(local_id), Some(current_peer_id)) = + (instance.config.identifier, current_peer_id) + && current_peer_id == incoming_peer_id + && local_id < current_peer_id + { + if let Some((_, nbr)) = neighbors.iter_mut().find(|(_, n)| { + matches!( + n.state, + fsm::State::OpenConfirm | fsm::State::OpenSent + ) + }) { + let msg = NotificationMsg::new( + ErrorCode::Cease, + CeaseSubcode::ConnectionCollisionResolution, + ); + + nbr.in_collision = false; + nbr.session_close( + &mut instance.state.rib, + instance.tx, + Some(msg), + ); + nbr.state = fsm::State::Idle; + return true; + } + } + + return false; + } + // Injects an event into the neighbor's FSM. pub(crate) fn fsm_event( &mut self, @@ -381,6 +435,14 @@ impl Neighbor { Some(fsm::State::Idle) } fsm::Event::RcvdOpen(_msg) => { + if self.in_collision { + let error_code = ErrorCode::Cease; + let error_subcode = + CeaseSubcode::ConnectionCollisionResolution; + let msg = + NotificationMsg::new(error_code, error_subcode); + self.session_close(rib, instance.tx, Some(msg)); + } // TODO: collision detection Some(fsm::State::Idle) } @@ -716,6 +778,16 @@ impl Neighbor { instance: &mut InstanceUpView<'_>, msg: OpenMsg, ) -> fsm::State { + // Check for a collision. + if self.in_collision { + let error_code = ErrorCode::Cease; + let error_subcode = CeaseSubcode::ConnectionCollisionResolution; + let msg = NotificationMsg::new(error_code, error_subcode); + let rib = &mut instance.state.rib; + self.session_close(rib, instance.tx, Some(msg)); + return fsm::State::Idle; + } + use crate::packet::iana::OpenMessageErrorSubcode as ErrorSubcode; // Validate the received message. From 1d3910d910933c63e316005c7e1d096c691d2343 Mon Sep 17 00:00:00 2001 From: Paul-weqe Date: Mon, 22 Jun 2026 00:24:16 +0300 Subject: [PATCH 2/2] ci: fix failing tests Fix the conformance tests, cippy requirements and spelling errors. Signed-off-by: Paul Wekesa --- holo-bgp/src/events.rs | 6 +- holo-bgp/src/neighbor.rs | 31 +- .../topologies/topo1-1/rt1/config.json | 47 ++- .../topologies/topo1-1/rt1/events.jsonl | 77 ++-- .../topologies/topo1-1/rt1/output/ibus.jsonl | 9 +- .../topo1-1/rt1/output/northbound-state.json | 253 +++++++------ .../topo1-1/rt1/output/protocol.jsonl | 17 +- .../topologies/topo1-1/rt2/config.json | 47 ++- .../topologies/topo1-1/rt2/events.jsonl | 76 ++-- .../topologies/topo1-1/rt2/output/ibus.jsonl | 9 +- .../topo1-1/rt2/output/northbound-state.json | 263 +++++++------ .../topo1-1/rt2/output/protocol.jsonl | 17 +- .../topologies/topo1-1/rt3/config.json | 115 ++++-- .../topologies/topo1-1/rt3/events.jsonl | 65 +--- .../topologies/topo1-1/rt3/output/ibus.jsonl | 8 +- .../topo1-1/rt3/output/northbound-notif.jsonl | 3 +- .../topo1-1/rt3/output/northbound-state.json | 357 ++++-------------- .../topo1-1/rt3/output/protocol.jsonl | 11 +- .../topologies/topo1-1/rt4/config.json | 115 ++++-- .../topologies/topo1-1/rt4/events.jsonl | 63 +--- .../topologies/topo1-1/rt4/output/ibus.jsonl | 8 +- .../topo1-1/rt4/output/northbound-notif.jsonl | 3 +- .../topo1-1/rt4/output/northbound-state.json | 357 ++++-------------- .../topo1-1/rt4/output/protocol.jsonl | 11 +- .../topologies/topo2-1/rt1/config.json | 17 +- .../topologies/topo2-1/rt1/events.jsonl | 111 +++--- .../topologies/topo2-1/rt1/output/ibus.jsonl | 5 +- .../topo2-1/rt1/output/northbound-notif.jsonl | 4 +- .../topo2-1/rt1/output/northbound-state.json | 150 +------- .../topo2-1/rt1/output/protocol.jsonl | 27 +- .../topologies/topo2-1/rt2/config.json | 17 +- .../topologies/topo2-1/rt2/events.jsonl | 78 ++-- .../topologies/topo2-1/rt2/output/ibus.jsonl | 4 +- .../topo2-1/rt2/output/northbound-state.json | 61 +-- .../topo2-1/rt2/output/protocol.jsonl | 12 +- .../topologies/topo2-1/rt3/config.json | 17 +- .../topologies/topo2-1/rt3/events.jsonl | 87 ++--- .../topologies/topo2-1/rt3/output/ibus.jsonl | 8 +- .../topo2-1/rt3/output/northbound-notif.jsonl | 4 +- .../topo2-1/rt3/output/northbound-state.json | 48 +-- .../topo2-1/rt3/output/protocol.jsonl | 14 +- .../topologies/topo2-1/rt4/config.json | 17 +- .../topologies/topo2-1/rt4/events.jsonl | 79 ++-- .../topologies/topo2-1/rt4/output/ibus.jsonl | 9 +- .../topo2-1/rt4/output/northbound-notif.jsonl | 4 +- .../topo2-1/rt4/output/northbound-state.json | 98 +---- .../topo2-1/rt4/output/protocol.jsonl | 17 +- .../topologies/topo2-1/rt5/config.json | 17 +- .../topologies/topo2-1/rt5/events.jsonl | 86 ++--- .../topologies/topo2-1/rt5/output/ibus.jsonl | 9 +- .../topo2-1/rt5/output/northbound-notif.jsonl | 4 +- .../topo2-1/rt5/output/northbound-state.json | 98 +---- .../topo2-1/rt5/output/protocol.jsonl | 16 +- .../topologies/topo2-1/rt6/config.json | 17 +- .../topologies/topo2-1/rt6/events.jsonl | 113 +++--- .../topologies/topo2-1/rt6/output/ibus.jsonl | 11 +- .../topo2-1/rt6/output/northbound-notif.jsonl | 4 +- .../topo2-1/rt6/output/northbound-state.json | 77 +--- .../topo2-1/rt6/output/protocol.jsonl | 20 +- 59 files changed, 1273 insertions(+), 2055 deletions(-) diff --git a/holo-bgp/src/events.rs b/holo-bgp/src/events.rs index 6a60fa3cf..d44b56059 100644 --- a/holo-bgp/src/events.rs +++ b/holo-bgp/src/events.rs @@ -317,10 +317,14 @@ fn process_nbr_reach_prefixes( } // Initialize route origin and type. + let Some(identifier) = nbr.identifier else { + return; + }; let origin = RouteOrigin::Neighbor { - identifier: nbr.identifier.unwrap(), + identifier, remote_addr: nbr.remote_addr, }; + let route_type = match nbr.peer_type { PeerType::Internal => RouteType::Internal, PeerType::External => RouteType::External, diff --git a/holo-bgp/src/neighbor.rs b/holo-bgp/src/neighbor.rs index 181fdbd59..906e8ae3a 100644 --- a/holo-bgp/src/neighbor.rs +++ b/holo-bgp/src/neighbor.rs @@ -232,7 +232,7 @@ impl Neighbor { /// Returns true if the collision prevention procedure led to the closure of a connection /// binded to a neighbor that is not the one sending the OPEN Message. /// - /// Rturns false it returns false meaning it has not yet been handled, and the session to be + /// Returns false if the collision has not yet been handled, and the session to be /// closed is the one that has just sent this OPEN message. This will be handled in /// fsm_event() pub(crate) fn collision_prevention( @@ -245,30 +245,25 @@ impl Neighbor { (instance.config.identifier, current_peer_id) && current_peer_id == incoming_peer_id && local_id < current_peer_id - { - if let Some((_, nbr)) = neighbors.iter_mut().find(|(_, n)| { + && let Some((_, nbr)) = neighbors.iter_mut().find(|(_, n)| { matches!( n.state, fsm::State::OpenConfirm | fsm::State::OpenSent ) - }) { - let msg = NotificationMsg::new( - ErrorCode::Cease, - CeaseSubcode::ConnectionCollisionResolution, - ); + }) + { + let msg = NotificationMsg::new( + ErrorCode::Cease, + CeaseSubcode::ConnectionCollisionResolution, + ); - nbr.in_collision = false; - nbr.session_close( - &mut instance.state.rib, - instance.tx, - Some(msg), - ); - nbr.state = fsm::State::Idle; - return true; - } + nbr.in_collision = false; + nbr.session_close(&mut instance.state.rib, instance.tx, Some(msg)); + nbr.state = fsm::State::Idle; + return true; } - return false; + false } // Injects an event into the neighbor's FSM. diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/config.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/config.json index 1ac9ec9f8..b31678eda 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/config.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/config.json @@ -2,19 +2,22 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt2", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt3", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} } ] }, @@ -23,7 +26,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65100, @@ -44,6 +47,20 @@ } ] } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route" + }, + "ipv6-unicast": { + "holo-bgp:redistribution": [ + { + "type": "ietf-routing:direct" + } + ] + } } ] } @@ -62,6 +79,14 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } } ] } @@ -78,6 +103,14 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } } ] } diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/events.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/events.jsonl index 9e0d6e825..7312725e3 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/events.jsonl @@ -1,58 +1,49 @@ -{"Ibus":{"RouterIdUpdate":"1.1.1.1"}} +{"Ibus":{"RouterIdUpdate":"10.0.2.1"}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":54334}}}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"1.1.1.1/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.1","local_port":52090,"remote_addr":"10.0.1.2","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"1.1.1.1/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":5}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"1.1.1.1/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:1::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:2::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fe80::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.1.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.2.0/24","result":"Reject"}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:1::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:2::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.1","local_port":179,"remote_addr":"10.0.2.3","remote_port":46092}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":39674}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":54340}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.1.2","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.1","local_port":51452,"remote_addr":"10.0.1.2","remote_port":179}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.2.3","timer":"AutoStart"}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Err":{"TcpConnClosed":null}}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.1","local_port":179,"remote_addr":"10.0.2.3","remote_port":43240}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Err":{"TcpConnClosed":null}}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":39684}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.1","local_port":52104,"remote_addr":"10.0.1.2","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.1","local_port":50098,"remote_addr":"10.0.2.3","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"10.0.3.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.1.2","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.1.2","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.1","local_port":179,"remote_addr":"10.0.2.3","remote_port":43250}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Err":"TcpConnClosed"}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:3::/64"],"nexthop":"::ffff:10.0.1.2","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"::ffff:10.0.1.2"}}}}],["fc00:0:0:3::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"::ffff:10.0.1.2"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"::ffff:10.0.1.2","metric":null}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.1","local_port":179,"remote_addr":"10.0.2.3","remote_port":39966}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"172.16.1.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.2.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.3","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.2.3","metric":0}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.3","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.3","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.3","labels":[],"resolved":[{"Address":{"ifindex":5,"addr":"10.0.2.3","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65000]}]},"nexthop":"10.0.1.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.3","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:2::/64","fc00:0:0:4::/64"],"nexthop":"::ffff:10.0.2.3","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.3","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:2::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"172.16.1.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"::ffff:10.0.2.3"}}}}],["fc00:0:0:4::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"172.16.1.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"::ffff:10.0.2.3"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"::ffff:10.0.2.3","metric":null}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.1.2","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.2.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65000]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.3","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.2.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.3","labels":[],"resolved":[{"Address":{"ifindex":5,"addr":"10.0.2.3","labels":[]}}]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.3","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.3","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/ibus.jsonl index ad1a32d75..af7704499 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/ibus.jsonl @@ -1,8 +1,5 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} -{"NexthopTrack":{"addr":"10.0.1.2"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.2.3"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.3","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.3","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv6"}} +{"NexthopTrack":{"addr":"::ffff:10.0.1.2"}} +{"NexthopTrack":{"addr":"::ffff:10.0.2.3"}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/northbound-state.json index 875ae594a..7202c7799 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/northbound-state.json @@ -11,6 +11,12 @@ "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", + "statistics": { + "total-prefixes": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", "statistics": { "total-prefixes": 4 } @@ -27,7 +33,7 @@ "remote-address": "10.0.1.2", "local-address": "10.0.1.1", "peer-type": "external", - "identifier": "2.2.2.2", + "identifier": "10.0.3.2", "timers": { "negotiated-hold-time": 90 }, @@ -36,9 +42,17 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, - "sent": 3, - "installed": 3 + "received": 0, + "sent": 0, + "installed": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "prefixes": { + "received": 2, + "sent": 2, + "installed": 2 } } ] @@ -59,8 +73,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -70,7 +96,7 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], @@ -88,8 +114,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -99,11 +137,12 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], "negotiated-capabilities": [ + "iana-bgp-types:mp-bgp", "iana-bgp-types:mp-bgp", "iana-bgp-types:asn32", "iana-bgp-types:route-refresh" @@ -114,7 +153,7 @@ "remote-address": "10.0.2.3", "local-address": "10.0.2.1", "peer-type": "external", - "identifier": "3.3.3.3", + "identifier": "172.16.1.3", "timers": { "negotiated-hold-time": 90 }, @@ -122,6 +161,14 @@ "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", + "prefixes": { + "received": 0, + "sent": 0, + "installed": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", "prefixes": { "received": 2, "sent": 2, @@ -146,8 +193,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -157,7 +216,7 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], @@ -175,8 +234,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -186,11 +257,12 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], "negotiated-capabilities": [ + "iana-bgp-types:mp-bgp", "iana-bgp-types:mp-bgp", "iana-bgp-types:asn32", "iana-bgp-types:route-refresh" @@ -209,7 +281,7 @@ } }, { - "index": "2801120095642840682", + "index": "10149791454207073753", "attributes": { "origin": "incomplete", "as-path": { @@ -222,11 +294,11 @@ } ] }, - "next-hop": "10.0.2.3" + "next-hop": "::ffff:10.0.2.3" } }, { - "index": "4544931297767258070", + "index": "2668805203596793829", "attributes": { "origin": "incomplete", "as-path": { @@ -239,25 +311,7 @@ } ] }, - "next-hop": "10.0.1.2" - } - }, - { - "index": "119013827277143083", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65101, - 65000 - ] - } - ] - }, - "next-hop": "10.0.1.2" + "next-hop": "::ffff:10.0.1.2" } } ] @@ -267,32 +321,35 @@ { "name": "iana-bgp-types:ipv4-unicast", "ipv4-unicast": { + "neighbors": { + "neighbor": [ + { + "neighbor-address": "10.0.1.2" + }, + { + "neighbor-address": "10.0.2.3" + } + ] + } + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "ipv6-unicast": { "loc-rib": { "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "origin": "ietf-routing:direct", "path-id": 0, "attr-index": "9414355416643581871" }, { - "prefix": "2.2.2.2/32", - "origin": "10.0.1.2", - "path-id": 0, - "attr-index": "4544931297767258070" - }, - { - "prefix": "3.3.3.3/32", - "origin": "10.0.2.3", - "path-id": 0, - "attr-index": "2801120095642840682" - }, - { - "prefix": "4.4.4.4/32", - "origin": "10.0.2.3", + "prefix": "fc00:0:0:2::/64", + "origin": "ietf-routing:direct", "path-id": 0, - "attr-index": "2801120095642840682" + "attr-index": "9414355416643581871" } ] } @@ -305,21 +362,15 @@ "routes": { "route": [ { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "4544931297767258070", - "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "119013827277143083", + "attr-index": "2668805203596793829", "eligible-route": true }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "119013827277143083", + "attr-index": "2668805203596793829", "eligible-route": true } ] @@ -329,24 +380,18 @@ "routes": { "route": [ { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "4544931297767258070", - "eligible-route": true + "attr-index": "2668805203596793829", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" }, { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "119013827277143083", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" - }, - { - "prefix": "4.4.4.4/32", - "path-id": 0, - "attr-index": "119013827277143083", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" + "attr-index": "2668805203596793829", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" } ] } @@ -355,21 +400,15 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "2801120095642840682", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "2801120095642840682", + "attr-index": "9414355416643581871", "eligible-route": true } ] @@ -379,21 +418,15 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "2801120095642840682", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", - "path-id": 0, - "attr-index": "2801120095642840682", + "attr-index": "9414355416643581871", "eligible-route": true } ] @@ -406,15 +439,15 @@ "routes": { "route": [ { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "2801120095642840682", + "attr-index": "10149791454207073753", "eligible-route": true }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, - "attr-index": "2801120095642840682", + "attr-index": "10149791454207073753", "eligible-route": true } ] @@ -424,16 +457,18 @@ "routes": { "route": [ { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "2801120095642840682", - "eligible-route": true + "attr-index": "10149791454207073753", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, - "attr-index": "2801120095642840682", - "eligible-route": true + "attr-index": "10149791454207073753", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" } ] } @@ -442,15 +477,15 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "4544931297767258070", + "attr-index": "9414355416643581871", "eligible-route": true } ] @@ -460,15 +495,15 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "4544931297767258070", + "attr-index": "9414355416643581871", "eligible-route": true } ] diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/protocol.jsonl index f88967b57..5f31de34a 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt1/output/protocol.jsonl @@ -1,12 +1,9 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.3","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.1.1"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.3","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.3","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:2::/64"],"nexthop":"::ffff:10.0.1.1","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"::ffff:10.0.1.1"}}}}]}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.3","msg":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.3","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.3","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.2.1"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"nexthop":"10.0.2.1"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65000]}]},"nexthop":"10.0.1.1"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65000]}]},"nexthop":"10.0.1.1"}}}}]}}} \ No newline at end of file +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.3","msg_list":[{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:2::/64"],"nexthop":"::ffff:10.0.2.1","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"::ffff:10.0.2.1"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/config.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/config.json index 93e28beaf..efdd9b2a9 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/config.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/config.json @@ -2,19 +2,22 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt4", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} } ] }, @@ -23,7 +26,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65101, @@ -44,6 +47,20 @@ } ] } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route" + }, + "ipv6-unicast": { + "holo-bgp:redistribution": [ + { + "type": "ietf-routing:direct" + } + ] + } } ] } @@ -62,6 +79,14 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } } ] } @@ -78,6 +103,14 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } } ] } diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/events.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/events.jsonl index ba80922b9..764d8db0e 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/events.jsonl @@ -1,59 +1,49 @@ -{"Ibus":{"RouterIdUpdate":"2.2.2.2"}} +{"Ibus":{"RouterIdUpdate":"10.0.3.2"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"2.2.2.2/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":39674,"remote_addr":"10.0.1.1","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":54334,"remote_addr":"10.0.1.1","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"2.2.2.2/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"2.2.2.2/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:1::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:3::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fe80::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.1.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.3.0/24","result":"Reject"}}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.2","local_port":179,"remote_addr":"10.0.1.1","remote_port":51452}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:1::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:3::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.2","local_port":179,"remote_addr":"10.0.1.1","remote_port":52090}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.2","local_port":179,"remote_addr":"10.0.3.4","remote_port":47072}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.3.4","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.1.1","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":39684,"remote_addr":"10.0.1.1","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.1.1","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.1.1","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.2","local_port":179,"remote_addr":"10.0.3.4","remote_port":45164}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Err":{"TcpConnClosed":null}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.2","local_port":40268,"remote_addr":"10.0.3.4","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":54340,"remote_addr":"10.0.1.1","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Err":"TcpConnClosed"}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65000]}]},"nexthop":"10.0.1.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Err":"TcpConnClosed"}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.1.1","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.2","local_port":179,"remote_addr":"10.0.3.4","remote_port":45178}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.2","local_port":179,"remote_addr":"10.0.1.1","remote_port":52104}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"10.0.2.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:3::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:2::/64"],"nexthop":"::ffff:10.0.1.1","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.2.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"::ffff:10.0.1.1"}}}}],["fc00:0:0:2::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.2.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"::ffff:10.0.1.1"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"::ffff:10.0.1.1","metric":null}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.2","local_port":179,"remote_addr":"10.0.3.4","remote_port":53860}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"172.16.1.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.1.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.4","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.3.4","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.4","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.4","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.3.4","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.3.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.4","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.4","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:3::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:3::/64","fc00:0:0:4::/64"],"nexthop":"::ffff:10.0.3.4","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.4","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:3::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"172.16.1.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"::ffff:10.0.3.4"}}}}],["fc00:0:0:4::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"172.16.1.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"::ffff:10.0.3.4"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"::ffff:10.0.3.4","metric":null}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.4","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.4","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.3.4","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65000]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65000]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.3.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:3::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.4","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:3::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.4","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/ibus.jsonl index 2bc9868d0..f5c557321 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/ibus.jsonl @@ -1,8 +1,5 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} -{"NexthopTrack":{"addr":"10.0.1.1"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.3.4"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.4","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.4","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv6"}} +{"NexthopTrack":{"addr":"::ffff:10.0.1.1"}} +{"NexthopTrack":{"addr":"::ffff:10.0.3.4"}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/northbound-state.json index a5872bb11..e6518f13d 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/northbound-state.json @@ -11,6 +11,12 @@ "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", + "statistics": { + "total-prefixes": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", "statistics": { "total-prefixes": 4 } @@ -27,21 +33,29 @@ "remote-address": "10.0.1.1", "local-address": "10.0.1.2", "peer-type": "external", - "identifier": "1.1.1.1", + "identifier": "10.0.2.1", "timers": { "negotiated-hold-time": 90 }, "afi-safis": { "afi-safi": [ - { - "name": "iana-bgp-types:ipv4-unicast", - "prefixes": { - "received": 3, - "sent": 3, - "installed": 3 - } + { + "name": "iana-bgp-types:ipv4-unicast", + "prefixes": { + "received": 0, + "sent": 0, + "installed": 0 } - ] + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "prefixes": { + "received": 2, + "sent": 2, + "installed": 2 + } + } + ] }, "session-state": "established", "capabilities": { @@ -59,8 +73,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -70,7 +96,7 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], @@ -88,8 +114,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -99,11 +137,12 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], "negotiated-capabilities": [ + "iana-bgp-types:mp-bgp", "iana-bgp-types:mp-bgp", "iana-bgp-types:asn32", "iana-bgp-types:route-refresh" @@ -114,7 +153,7 @@ "remote-address": "10.0.3.4", "local-address": "10.0.3.2", "peer-type": "external", - "identifier": "4.4.4.4", + "identifier": "172.16.1.4", "timers": { "negotiated-hold-time": 90 }, @@ -122,6 +161,14 @@ "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", + "prefixes": { + "received": 0, + "sent": 0, + "installed": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", "prefixes": { "received": 2, "sent": 2, @@ -146,8 +193,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -157,7 +216,7 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], @@ -175,8 +234,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -186,11 +257,12 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], "negotiated-capabilities": [ + "iana-bgp-types:mp-bgp", "iana-bgp-types:mp-bgp", "iana-bgp-types:asn32", "iana-bgp-types:route-refresh" @@ -209,7 +281,7 @@ } }, { - "index": "3792574372557815872", + "index": "906351122614597988", "attributes": { "origin": "incomplete", "as-path": { @@ -222,11 +294,11 @@ } ] }, - "next-hop": "10.0.3.4" + "next-hop": "::ffff:10.0.3.4" } }, { - "index": "3339871200699403153", + "index": "13384354524012293123", "attributes": { "origin": "incomplete", "as-path": { @@ -239,25 +311,7 @@ } ] }, - "next-hop": "10.0.1.1" - } - }, - { - "index": "10006168947044790100", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65100, - 65000 - ] - } - ] - }, - "next-hop": "10.0.1.1" + "next-hop": "::ffff:10.0.1.1" } } ] @@ -267,32 +321,35 @@ { "name": "iana-bgp-types:ipv4-unicast", "ipv4-unicast": { + "neighbors": { + "neighbor": [ + { + "neighbor-address": "10.0.1.1" + }, + { + "neighbor-address": "10.0.3.4" + } + ] + } + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "ipv6-unicast": { "loc-rib": { "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "origin": "10.0.1.1", - "path-id": 0, - "attr-index": "3339871200699403153" - }, - { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:1::/64", "origin": "ietf-routing:direct", "path-id": 0, "attr-index": "9414355416643581871" }, { - "prefix": "3.3.3.3/32", - "origin": "10.0.3.4", - "path-id": 0, - "attr-index": "3792574372557815872" - }, - { - "prefix": "4.4.4.4/32", - "origin": "10.0.3.4", + "prefix": "fc00:0:0:3::/64", + "origin": "ietf-routing:direct", "path-id": 0, - "attr-index": "3792574372557815872" + "attr-index": "9414355416643581871" } ] } @@ -305,21 +362,15 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "3339871200699403153", - "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "10006168947044790100", + "attr-index": "13384354524012293123", "eligible-route": true }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "10006168947044790100", + "attr-index": "13384354524012293123", "eligible-route": true } ] @@ -329,24 +380,18 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "3339871200699403153", - "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "10006168947044790100", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" + "attr-index": "13384354524012293123", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "10006168947044790100", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" + "attr-index": "13384354524012293123", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" } ] } @@ -355,21 +400,15 @@ "routes": { "route": [ { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "3792574372557815872", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "3792574372557815872", + "attr-index": "9414355416643581871", "eligible-route": true } ] @@ -379,21 +418,15 @@ "routes": { "route": [ { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "3792574372557815872", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "3792574372557815872", + "attr-index": "9414355416643581871", "eligible-route": true } ] @@ -406,15 +439,15 @@ "routes": { "route": [ { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "3792574372557815872", + "attr-index": "906351122614597988", "eligible-route": true }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, - "attr-index": "3792574372557815872", + "attr-index": "906351122614597988", "eligible-route": true } ] @@ -424,16 +457,18 @@ "routes": { "route": [ { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "3792574372557815872", - "eligible-route": true + "attr-index": "906351122614597988", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, - "attr-index": "3792574372557815872", - "eligible-route": true + "attr-index": "906351122614597988", + "eligible-route": false, + "ineligible-reason": "holo-bgp:ineligible-unresolvable" } ] } @@ -442,13 +477,13 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "3339871200699403153", + "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true @@ -460,13 +495,13 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "3339871200699403153", + "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/protocol.jsonl index 4027d60ba..6665194c2 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt2/output/protocol.jsonl @@ -1,11 +1,10 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.4","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.1.2"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.4","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.4","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:3::/64"],"nexthop":"::ffff:10.0.1.2","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"::ffff:10.0.1.2"}}}}]}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.4","msg":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.4","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.4","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.3.2"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"nexthop":"10.0.3.2"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65000]}]},"nexthop":"10.0.1.2"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65000]}]},"nexthop":"10.0.1.2"}}}}]}}} \ No newline at end of file +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.4","msg_list":[{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:3::/64"],"nexthop":"::ffff:10.0.3.2","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"::ffff:10.0.3.2"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/config.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/config.json index 82e4a7223..59594681e 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/config.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/config.json @@ -2,55 +2,31 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt4", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} } ] }, "ietf-routing:routing": { "control-plane-protocols": { "control-plane-protocol": [ - { - "type": "ietf-ospf:ospfv2", - "name": "test", - "ietf-ospf:ospf": { - "explicit-router-id": "3.3.3.3", - "areas": { - "area": [ - { - "area-id": "0.0.0.0", - "interfaces": { - "interface": [ - { - "name": "lo" - }, - { - "name": "eth-rt4", - "interface-type": "point-to-point", - "hello-interval": 3, - "dead-interval": 12 - } - ] - } - } - ] - } - } - }, { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65000, @@ -71,6 +47,20 @@ } ] } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route" + }, + "ipv6-unicast": { + "holo-bgp:redistribution": [ + { + "type": "ietf-routing:direct" + } + ] + } } ] } @@ -78,8 +68,11 @@ "neighbors": { "neighbor": [ { - "remote-address": "10.0.2.1", - "peer-as": 65100, + "remote-address": "4.4.4.4", + "peer-as": 65000, + "transport": { + "local-address": "3.3.3.3" + }, "afi-safis": { "afi-safi": [ { @@ -89,16 +82,21 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } } ] } }, { - "remote-address": "4.4.4.4", - "peer-as": 65000, - "transport": { - "local-address": "3.3.3.3" - }, + "remote-address": "10.0.2.1", + "peer-as": 65100, "afi-safis": { "afi-safi": [ { @@ -108,6 +106,41 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } + } + ] + } + } + ] + } + } + }, + { + "type": "ietf-ospf:ospfv2", + "name": "main", + "ietf-ospf:ospf": { + "explicit-router-id": "3.3.3.3", + "areas": { + "area": [ + { + "area-id": "0.0.0.0", + "interfaces": { + "interface": [ + { + "name": "eth2", + "interface-type": "point-to-point", + "hello-interval": 3, + "dead-interval": 12 + }, + { + "name": "lo" } ] } diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/events.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/events.jsonl index a48a6c629..c5ed60fdc 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/events.jsonl @@ -1,61 +1,30 @@ -{"Ibus":{"RouterIdUpdate":"3.3.3.3"}} -{"Ibus":{"RouterIdUpdate":"3.3.3.3"}} +{"Ibus":{"RouterIdUpdate":"172.16.1.3"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"3.3.3.3/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.3","local_port":43240,"remote_addr":"10.0.2.1","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.3","local_port":46092,"remote_addr":"10.0.2.1","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"3.3.3.3/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"172.16.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"3.3.3.3/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:2::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:4::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fe80::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.2.0/24","result":"Reject"}}}} -{"Ibus":{"InterfaceUpd":{"ifname":"eth-rt4","ifindex":3,"mtu":1500,"flags":"OPERATIVE"}}} -{"Ibus":{"InterfaceAddressAdd":{"ifname":"eth-rt4","addr":"172.16.1.3/24","flags":""}}} -{"Ibus":{"InterfaceUpd":{"ifname":"lo","ifindex":1,"mtu":65536,"flags":"LOOPBACK | OPERATIVE"}}} -{"Ibus":{"InterfaceAddressAdd":{"ifname":"lo","addr":"3.3.3.3/32","flags":""}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"3.3.3.3/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"172.16.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"172.16.1.0/24","result":"Reject"}}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"3.3.3.3/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"172.16.1.0/24","result":"Reject"}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:2::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:4::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.3","local_port":179,"remote_addr":"10.0.2.1","remote_port":50098}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.2.1","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"4.4.4.4","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.3","local_port":43250,"remote_addr":"10.0.2.1","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.3","local_port":39966,"remote_addr":"10.0.2.1","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Open":{"version":4,"my_as":65100,"holdtime":90,"identifier":"10.0.2.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65100}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.2.1"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.2.1","metric":0}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:4::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:2::/64"],"nexthop":"::ffff:10.0.2.1","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.2.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"::ffff:10.0.2.1"}}}}],["fc00:0:0:2::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.2.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"::ffff:10.0.2.1"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"::ffff:10.0.2.1","metric":null}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.2.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.2.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"ospfv2","prefix":"4.4.4.4/32","distance":110,"metric":10,"tag":null,"nexthops":[{"Address":{"ifindex":3,"addr":"172.16.1.4","labels":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"ospfv2","prefix":"4.4.4.4/32","distance":110,"metric":10,"tag":null,"nexthops":[{"Address":{"ifindex":3,"addr":"172.16.1.4","labels":[]}}]}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"3.3.3.3","local_port":45375,"remote_addr":"4.4.4.4","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"4.4.4.4","msg":{"Ok":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"4.4.4.4","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"4.4.4.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.2.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"nexthop":"10.0.2.1"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"3.3.3.3","local_port":179,"remote_addr":"4.4.4.4","remote_port":37365}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"4.4.4.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"4.4.4.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"local_pref":100}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"4.4.4.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"local_pref":100}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"4.4.4.4","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"4.4.4.4"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"nexthop":"4.4.4.4","local_pref":100}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"4.4.4.4","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"4.4.4.4"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.3.2","local_pref":100}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"4.4.4.4","metric":10}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.3.2","metric":null}}} -{"Protocol":{"NbrRx":{"nbr_addr":"4.4.4.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"local_pref":100}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"4.4.4.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"4.4.4.4"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"nexthop":"10.0.3.2","local_pref":100}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":200,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"4.4.4.4","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"4.4.4.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.2.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"nexthop":"10.0.2.1"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"4.4.4.4"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"nexthop":"4.4.4.4","local_pref":100}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"ospfv2","prefix":"4.4.4.4/32","distance":110,"metric":10,"tag":null,"nexthops":[{"Address":{"ifindex":3,"addr":"172.16.1.4","labels":[]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:2::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"4.4.4.4","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/ibus.jsonl index 0daae3d3e..6b7208914 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/ibus.jsonl @@ -1,8 +1,4 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} -{"NexthopTrack":{"addr":"10.0.2.1"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"4.4.4.4"}} -{"NexthopTrack":{"addr":"10.0.3.2"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":200,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"4.4.4.4","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv6"}} +{"NexthopTrack":{"addr":"::ffff:10.0.2.1"}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-notif.jsonl index a60d22adc..0c39bba85 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-notif.jsonl @@ -1,2 +1 @@ -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.2.1"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"4.4.4.4"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.2.1"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-state.json index fb7a4cc23..d83712b45 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/northbound-state.json @@ -12,109 +12,45 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 4 + "total-prefixes": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "statistics": { + "total-prefixes": 3 } } ] }, "statistics": { - "total-prefixes": 4 + "total-prefixes": 3 } }, "neighbors": { "neighbor": [ { "remote-address": "4.4.4.4", - "local-address": "3.3.3.3", "peer-type": "internal", - "identifier": "4.4.4.4", - "timers": { - "negotiated-hold-time": 90 - }, "afi-safis": { "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, - "sent": 3, - "installed": 3 + "received": 0, + "sent": 0, + "installed": 0 } } ] }, - "session-state": "established", - "capabilities": { - "advertised-capabilities": [ - { - "code": 1, - "index": 0, - "name": "iana-bgp-types:mp-bgp", - "value": { - "mpbgp": { - "afi": "ipv4", - "safi": "unicast-safi", - "name": "iana-bgp-types:ipv4-unicast" - } - } - }, - { - "code": 65, - "index": 1, - "name": "iana-bgp-types:asn32", - "value": { - "asn32": { - "as": 65000 - } - } - }, - { - "code": 2, - "index": 2, - "name": "iana-bgp-types:route-refresh" - } - ], - "received-capabilities": [ - { - "code": 1, - "index": 0, - "name": "iana-bgp-types:mp-bgp", - "value": { - "mpbgp": { - "afi": "ipv4", - "safi": "unicast-safi", - "name": "iana-bgp-types:ipv4-unicast" - } - } - }, - { - "code": 65, - "index": 1, - "name": "iana-bgp-types:asn32", - "value": { - "asn32": { - "as": 65000 - } - } - }, - { - "code": 2, - "index": 2, - "name": "iana-bgp-types:route-refresh" - } - ], - "negotiated-capabilities": [ - "iana-bgp-types:mp-bgp", - "iana-bgp-types:asn32", - "iana-bgp-types:route-refresh" - ] - } + "session-state": "connect" }, { "remote-address": "10.0.2.1", "local-address": "10.0.2.3", "peer-type": "external", - "identifier": "1.1.1.1", + "identifier": "10.0.2.1", "timers": { "negotiated-hold-time": 90 }, @@ -122,6 +58,14 @@ "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", + "prefixes": { + "received": 0, + "sent": 0, + "installed": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", "prefixes": { "received": 2, "sent": 2, @@ -146,8 +90,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -157,7 +113,7 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], @@ -175,8 +131,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -186,11 +154,12 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], "negotiated-capabilities": [ + "iana-bgp-types:mp-bgp", "iana-bgp-types:mp-bgp", "iana-bgp-types:asn32", "iana-bgp-types:route-refresh" @@ -209,50 +178,7 @@ } }, { - "index": "8827140507525765293", - "attributes": { - "origin": "incomplete", - "next-hop": "4.4.4.4", - "local-pref": 100 - } - }, - { - "index": "16605731623949673629", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65100 - ] - } - ] - }, - "next-hop": "10.0.2.1" - } - }, - { - "index": "10309938895379910465", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65100, - 65101 - ] - } - ] - }, - "next-hop": "10.0.2.1" - } - }, - { - "index": "18154162071947748856", + "index": "16280016499712910084", "attributes": { "origin": "incomplete", "as-path": { @@ -260,32 +186,12 @@ { "type": "iana-bgp-types:as-sequence", "member": [ - 65101 - ] - } - ] - }, - "next-hop": "10.0.3.2", - "local-pref": 100 - } - }, - { - "index": "16078037403384206913", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65101, 65100 ] } ] }, - "next-hop": "10.0.3.2", - "local-pref": 100 + "next-hop": "::ffff:10.0.2.1" } } ] @@ -295,32 +201,32 @@ { "name": "iana-bgp-types:ipv4-unicast", "ipv4-unicast": { + "neighbors": { + "neighbor": [ + { + "neighbor-address": "10.0.2.1" + } + ] + } + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "ipv6-unicast": { "loc-rib": { "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "origin": "10.0.2.1", - "path-id": 0, - "attr-index": "16605731623949673629" - }, - { - "prefix": "2.2.2.2/32", - "origin": "10.0.2.1", - "path-id": 0, - "attr-index": "10309938895379910465" - }, - { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:2::/64", "origin": "ietf-routing:direct", "path-id": 0, "attr-index": "9414355416643581871" }, { - "prefix": "4.4.4.4/32", - "origin": "4.4.4.4", + "prefix": "fc00:0:0:4::/64", + "origin": "ietf-routing:direct", "path-id": 0, - "attr-index": "8827140507525765293" + "attr-index": "9414355416643581871" } ] } @@ -328,26 +234,20 @@ "neighbors": { "neighbor": [ { - "neighbor-address": "4.4.4.4", + "neighbor-address": "10.0.2.1", "adj-rib-in-pre": { "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "16078037403384206913", + "attr-index": "16280016499712910084", "eligible-route": true }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "18154162071947748856", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", - "path-id": 0, - "attr-index": "8827140507525765293", + "attr-index": "16280016499712910084", "eligible-route": true } ] @@ -357,24 +257,18 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "16078037403384206913", + "attr-index": "16280016499712910084", "eligible-route": false, "ineligible-reason": "holo-bgp:ineligible-unresolvable" }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, - "attr-index": "18154162071947748856", + "attr-index": "16280016499712910084", "eligible-route": false, "ineligible-reason": "holo-bgp:ineligible-unresolvable" - }, - { - "prefix": "4.4.4.4/32", - "path-id": 0, - "attr-index": "8827140507525765293", - "eligible-route": true } ] } @@ -383,120 +277,33 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "16605731623949673629", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "10309938895379910465", - "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true - } - ] - } - }, - "adj-rib-out-post": { - "routes": { - "route": [ - { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "16605731623949673629", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "10309938895379910465", - "eligible-route": true }, { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true } ] } - } - }, - { - "neighbor-address": "10.0.2.1", - "adj-rib-in-pre": { - "routes": { - "route": [ - { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "16605731623949673629", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "10309938895379910465", - "eligible-route": true - } - ] - } - }, - "adj-rib-in-post": { - "routes": { - "route": [ - { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "16605731623949673629", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "10309938895379910465", - "eligible-route": true - } - ] - } - }, - "adj-rib-out-pre": { - "routes": { - "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9414355416643581871", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", - "path-id": 0, - "attr-index": "8827140507525765293", - "eligible-route": true - } - ] - } }, "adj-rib-out-post": { "routes": { "route": [ { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:2::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, - "attr-index": "8827140507525765293", + "attr-index": "9414355416643581871", "eligible-route": true } ] diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/protocol.jsonl index e3d7da6cb..c366f9e32 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt3/output/protocol.jsonl @@ -1,9 +1,4 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.2.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"4.4.4.4","msg":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"4.4.4.4","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"4.4.4.4","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"3.3.3.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"nexthop":"3.3.3.3","local_pref":100}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.2.1","local_pref":100}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"nexthop":"10.0.2.1","local_pref":100}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.2.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.2.3"}}}}]}}} \ No newline at end of file +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:2::/64","fc00:0:0:4::/64"],"nexthop":"::ffff:10.0.2.3","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"::ffff:10.0.2.3"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/config.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/config.json index 6306f75e8..16240e65f 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/config.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/config.json @@ -2,55 +2,31 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt2", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} }, { - "name": "eth-rt3", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": {}, + "ietf-ip:ipv6": {} } ] }, "ietf-routing:routing": { "control-plane-protocols": { "control-plane-protocol": [ - { - "type": "ietf-ospf:ospfv2", - "name": "test", - "ietf-ospf:ospf": { - "explicit-router-id": "4.4.4.4", - "areas": { - "area": [ - { - "area-id": "0.0.0.0", - "interfaces": { - "interface": [ - { - "name": "lo" - }, - { - "name": "eth-rt3", - "interface-type": "point-to-point", - "hello-interval": 3, - "dead-interval": 12 - } - ] - } - } - ] - } - } - }, { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65000, @@ -71,6 +47,20 @@ } ] } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route" + }, + "ipv6-unicast": { + "holo-bgp:redistribution": [ + { + "type": "ietf-routing:direct" + } + ] + } } ] } @@ -78,8 +68,11 @@ "neighbors": { "neighbor": [ { - "remote-address": "10.0.3.2", - "peer-as": 65101, + "remote-address": "3.3.3.3", + "peer-as": 65000, + "transport": { + "local-address": "4.4.4.4" + }, "afi-safis": { "afi-safi": [ { @@ -89,16 +82,21 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } } ] } }, { - "remote-address": "3.3.3.3", - "peer-as": 65000, - "transport": { - "local-address": "4.4.4.4" - }, + "remote-address": "10.0.3.2", + "peer-as": 65101, "afi-safis": { "afi-safi": [ { @@ -108,6 +106,41 @@ "default-import-policy": "accept-route", "default-export-policy": "accept-route" } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "enabled": true, + "apply-policy": { + "default-import-policy": "accept-route", + "default-export-policy": "accept-route" + } + } + ] + } + } + ] + } + } + }, + { + "type": "ietf-ospf:ospfv2", + "name": "main", + "ietf-ospf:ospf": { + "explicit-router-id": "4.4.4.4", + "areas": { + "area": [ + { + "area-id": "0.0.0.0", + "interfaces": { + "interface": [ + { + "name": "eth2", + "interface-type": "point-to-point", + "hello-interval": 3, + "dead-interval": 12 + }, + { + "name": "lo" } ] } diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/events.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/events.jsonl index 3b8b8b3de..58a95373f 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/events.jsonl @@ -1,61 +1,30 @@ -{"Ibus":{"RouterIdUpdate":"4.4.4.4"}} -{"Ibus":{"RouterIdUpdate":"4.4.4.4"}} +{"Ibus":{"RouterIdUpdate":"172.16.1.4"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"4.4.4.4/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.4","local_port":45164,"remote_addr":"10.0.3.2","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.4","local_port":47072,"remote_addr":"10.0.3.2","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"4.4.4.4/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"172.16.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} -{"Ibus":{"InterfaceUpd":{"ifname":"eth-rt3","ifindex":2,"mtu":1500,"flags":"OPERATIVE"}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"4.4.4.4/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} -{"Ibus":{"InterfaceAddressAdd":{"ifname":"eth-rt3","addr":"172.16.1.4/24","flags":""}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:3::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fc00:0:0:4::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"fe80::/64","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.3.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"172.16.1.0/24","result":"Reject"}}}} -{"Ibus":{"InterfaceUpd":{"ifname":"lo","ifindex":1,"mtu":65536,"flags":"LOOPBACK | OPERATIVE"}}} -{"Ibus":{"InterfaceAddressAdd":{"ifname":"lo","addr":"4.4.4.4/32","flags":""}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"4.4.4.4/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"172.16.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"4.4.4.4/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"172.16.1.0/24","result":"Reject"}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:3::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv6Unicast","prefix":"fc00:0:0:4::/64","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.4","local_port":179,"remote_addr":"10.0.3.2","remote_port":40268}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.3.2","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"3.3.3.3","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.4","local_port":45178,"remote_addr":"10.0.3.2","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.4","local_port":53860,"remote_addr":"10.0.3.2","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Open":{"version":4,"my_as":65101,"holdtime":90,"identifier":"10.0.3.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65101}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.2","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.3.2"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.3.2","metric":0}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"nexthop":"10.0.3.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:3::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["fc00:0:0:4::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:1::/64","fc00:0:0:3::/64"],"nexthop":"::ffff:10.0.3.2","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:1::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"::ffff:10.0.3.2"}}}}],["fc00:0:0:3::/64",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"::ffff:10.0.3.2"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"::ffff:10.0.3.2","metric":null}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.3.2","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.3.2","labels":[]}}]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"ospfv2","prefix":"3.3.3.3/32","distance":110,"metric":10,"tag":null,"nexthops":[{"Address":{"ifindex":2,"addr":"172.16.1.3","labels":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"ospfv2","prefix":"3.3.3.3/32","distance":110,"metric":10,"tag":null,"nexthops":[{"Address":{"ifindex":2,"addr":"172.16.1.3","labels":[]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"4.4.4.4","local_port":179,"remote_addr":"3.3.3.3","remote_port":45375}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"3.3.3.3","msg":{"Ok":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"3.3.3.3","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"3.3.3.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"nexthop":"10.0.3.2"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.3.2"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"4.4.4.4","local_port":37365,"remote_addr":"3.3.3.3","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"3.3.3.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"3.3.3.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"local_pref":100}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"3.3.3.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"local_pref":100}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"3.3.3.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"local_pref":100}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"3.3.3.3","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"3.3.3.3"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"nexthop":"3.3.3.3","local_pref":100}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"3.3.3.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"3.3.3.3"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100]}]},"nexthop":"10.0.2.1","local_pref":100}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"3.3.3.3","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"3.3.3.3"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65100,65101]}]},"nexthop":"10.0.2.1","local_pref":100}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"3.3.3.3","metric":10}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.2.1","metric":null}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":200,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"3.3.3.3","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"3.3.3.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"nexthop":"10.0.3.2"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.3.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.3.2"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"3.3.3.3"}},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"nexthop":"3.3.3.3","local_pref":100}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"ospfv2","prefix":"3.3.3.3/32","distance":110,"metric":10,"tag":null,"nexthops":[{"Address":{"ifindex":2,"addr":"172.16.1.3","labels":[]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.2","afi_safi":"Ipv6Unicast","routes":[["fc00:0:0:3::/64",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.2","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"3.3.3.3","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/ibus.jsonl index 44ae4f635..714f80b09 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/ibus.jsonl @@ -1,8 +1,4 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} -{"NexthopTrack":{"addr":"10.0.3.2"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.2","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.2","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"3.3.3.3"}} -{"NexthopTrack":{"addr":"10.0.2.1"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":200,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"3.3.3.3","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv6"}} +{"NexthopTrack":{"addr":"::ffff:10.0.3.2"}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-notif.jsonl index 5c22d9c11..e6b548fb5 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-notif.jsonl @@ -1,2 +1 @@ -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.3.2"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"3.3.3.3"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.3.2"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-state.json index b1da3fa0f..918f4461d 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/northbound-state.json @@ -12,109 +12,45 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 4 + "total-prefixes": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "statistics": { + "total-prefixes": 3 } } ] }, "statistics": { - "total-prefixes": 4 + "total-prefixes": 3 } }, "neighbors": { "neighbor": [ { "remote-address": "3.3.3.3", - "local-address": "4.4.4.4", "peer-type": "internal", - "identifier": "3.3.3.3", - "timers": { - "negotiated-hold-time": 90 - }, "afi-safis": { "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, - "sent": 3, - "installed": 3 + "received": 0, + "sent": 0, + "installed": 0 } } ] }, - "session-state": "established", - "capabilities": { - "advertised-capabilities": [ - { - "code": 1, - "index": 0, - "name": "iana-bgp-types:mp-bgp", - "value": { - "mpbgp": { - "afi": "ipv4", - "safi": "unicast-safi", - "name": "iana-bgp-types:ipv4-unicast" - } - } - }, - { - "code": 65, - "index": 1, - "name": "iana-bgp-types:asn32", - "value": { - "asn32": { - "as": 65000 - } - } - }, - { - "code": 2, - "index": 2, - "name": "iana-bgp-types:route-refresh" - } - ], - "received-capabilities": [ - { - "code": 1, - "index": 0, - "name": "iana-bgp-types:mp-bgp", - "value": { - "mpbgp": { - "afi": "ipv4", - "safi": "unicast-safi", - "name": "iana-bgp-types:ipv4-unicast" - } - } - }, - { - "code": 65, - "index": 1, - "name": "iana-bgp-types:asn32", - "value": { - "asn32": { - "as": 65000 - } - } - }, - { - "code": 2, - "index": 2, - "name": "iana-bgp-types:route-refresh" - } - ], - "negotiated-capabilities": [ - "iana-bgp-types:mp-bgp", - "iana-bgp-types:asn32", - "iana-bgp-types:route-refresh" - ] - } + "session-state": "connect" }, { "remote-address": "10.0.3.2", "local-address": "10.0.3.4", "peer-type": "external", - "identifier": "2.2.2.2", + "identifier": "10.0.3.2", "timers": { "negotiated-hold-time": 90 }, @@ -122,6 +58,14 @@ "afi-safi": [ { "name": "iana-bgp-types:ipv4-unicast", + "prefixes": { + "received": 0, + "sent": 0, + "installed": 0 + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", "prefixes": { "received": 2, "sent": 2, @@ -146,8 +90,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -157,7 +113,7 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], @@ -175,8 +131,20 @@ } }, { - "code": 65, + "code": 1, "index": 1, + "name": "iana-bgp-types:mp-bgp", + "value": { + "mpbgp": { + "afi": "ipv6", + "safi": "unicast-safi", + "name": "iana-bgp-types:ipv6-unicast" + } + } + }, + { + "code": 65, + "index": 2, "name": "iana-bgp-types:asn32", "value": { "asn32": { @@ -186,11 +154,12 @@ }, { "code": 2, - "index": 2, + "index": 3, "name": "iana-bgp-types:route-refresh" } ], "negotiated-capabilities": [ + "iana-bgp-types:mp-bgp", "iana-bgp-types:mp-bgp", "iana-bgp-types:asn32", "iana-bgp-types:route-refresh" @@ -209,33 +178,7 @@ } }, { - "index": "2041919722575234416", - "attributes": { - "origin": "incomplete", - "next-hop": "3.3.3.3", - "local-pref": 100 - } - }, - { - "index": "14060762941302644041", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65100 - ] - } - ] - }, - "next-hop": "10.0.2.1", - "local-pref": 100 - } - }, - { - "index": "12192969678727957780", + "index": "15515723980108258173", "attributes": { "origin": "incomplete", "as-path": { @@ -243,49 +186,12 @@ { "type": "iana-bgp-types:as-sequence", "member": [ - 65100, 65101 ] } ] }, - "next-hop": "10.0.2.1", - "local-pref": 100 - } - }, - { - "index": "17974525249628382610", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65101 - ] - } - ] - }, - "next-hop": "10.0.3.2" - } - }, - { - "index": "12500079366959446104", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65101, - 65100 - ] - } - ] - }, - "next-hop": "10.0.3.2" + "next-hop": "::ffff:10.0.3.2" } } ] @@ -295,29 +201,29 @@ { "name": "iana-bgp-types:ipv4-unicast", "ipv4-unicast": { + "neighbors": { + "neighbor": [ + { + "neighbor-address": "10.0.3.2" + } + ] + } + } + }, + { + "name": "iana-bgp-types:ipv6-unicast", + "ipv6-unicast": { "loc-rib": { "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "origin": "10.0.3.2", - "path-id": 0, - "attr-index": "12500079366959446104" - }, - { - "prefix": "2.2.2.2/32", - "origin": "10.0.3.2", - "path-id": 0, - "attr-index": "17974525249628382610" - }, - { - "prefix": "3.3.3.3/32", - "origin": "3.3.3.3", + "prefix": "fc00:0:0:3::/64", + "origin": "ietf-routing:direct", "path-id": 0, - "attr-index": "2041919722575234416" + "attr-index": "9414355416643581871" }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "origin": "ietf-routing:direct", "path-id": 0, "attr-index": "9414355416643581871" @@ -328,26 +234,20 @@ "neighbors": { "neighbor": [ { - "neighbor-address": "3.3.3.3", + "neighbor-address": "10.0.3.2", "adj-rib-in-pre": { "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "14060762941302644041", + "attr-index": "15515723980108258173", "eligible-route": true }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "12192969678727957780", - "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "2041919722575234416", + "attr-index": "15515723980108258173", "eligible-route": true } ] @@ -357,24 +257,18 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", + "prefix": "fc00:0:0:1::/64", "path-id": 0, - "attr-index": "14060762941302644041", + "attr-index": "15515723980108258173", "eligible-route": false, "ineligible-reason": "holo-bgp:ineligible-unresolvable" }, { - "prefix": "2.2.2.2/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "12192969678727957780", + "attr-index": "15515723980108258173", "eligible-route": false, "ineligible-reason": "holo-bgp:ineligible-unresolvable" - }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "2041919722575234416", - "eligible-route": true } ] } @@ -383,100 +277,13 @@ "routes": { "route": [ { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "12500079366959446104", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "17974525249628382610", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true - } - ] - } - }, - "adj-rib-out-post": { - "routes": { - "route": [ - { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "12500079366959446104", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "17974525249628382610", - "eligible-route": true }, { - "prefix": "4.4.4.4/32", - "path-id": 0, - "attr-index": "9414355416643581871", - "eligible-route": true - } - ] - } - } - }, - { - "neighbor-address": "10.0.3.2", - "adj-rib-in-pre": { - "routes": { - "route": [ - { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "12500079366959446104", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "17974525249628382610", - "eligible-route": true - } - ] - } - }, - "adj-rib-in-post": { - "routes": { - "route": [ - { - "prefix": "1.1.1.1/32", - "path-id": 0, - "attr-index": "12500079366959446104", - "eligible-route": true - }, - { - "prefix": "2.2.2.2/32", - "path-id": 0, - "attr-index": "17974525249628382610", - "eligible-route": true - } - ] - } - }, - "adj-rib-out-pre": { - "routes": { - "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "2041919722575234416", - "eligible-route": true - }, - { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true @@ -488,13 +295,13 @@ "routes": { "route": [ { - "prefix": "3.3.3.3/32", + "prefix": "fc00:0:0:3::/64", "path-id": 0, - "attr-index": "2041919722575234416", + "attr-index": "9414355416643581871", "eligible-route": true }, { - "prefix": "4.4.4.4/32", + "prefix": "fc00:0:0:4::/64", "path-id": 0, "attr-index": "9414355416643581871", "eligible-route": true diff --git a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/protocol.jsonl index f4a837933..24970b28d 100644 --- a/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo1-1/rt4/output/protocol.jsonl @@ -1,9 +1,4 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.2","msg":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.2","msg":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.2","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.2","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"3.3.3.3","msg":{"Open":{"version":4,"my_as":65000,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65000}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"3.3.3.3","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"3.3.3.3","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"4.4.4.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]},"nexthop":"4.4.4.4","local_pref":100}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101]}]},"nexthop":"10.0.3.2","local_pref":100}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65101,65100]}]},"nexthop":"10.0.3.2","local_pref":100}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.2","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.3.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"10.0.3.4"}}}}]}}} \ No newline at end of file +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"MultiProtocol":{"afi":"Ipv6","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.2","msg_list":[{"Update":{"mp_reach":{"Ipv6Unicast":{"prefixes":["fc00:0:0:3::/64","fc00:0:0:4::/64"],"nexthop":"::ffff:10.0.3.4","ll_nexthop":null}},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65000]}]},"nexthop":"::ffff:10.0.3.4"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/config.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/config.json index ca56edf12..a54341da3 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/config.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/config.json @@ -2,19 +2,26 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth2", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": { + "address": [ + { + "ip": "1.1.1.1", + "prefix-length": 32 + } + ] + } } ] }, @@ -23,7 +30,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65001, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/events.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/events.jsonl index df390d799..803aeabad 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/events.jsonl @@ -1,88 +1,73 @@ +{"Ibus":{"RouterIdUpdate":"10.0.3.1"}} {"Ibus":{"RouterIdUpdate":"1.1.1.1"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"1.1.1.1/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.1","local_port":37752,"remote_addr":"10.0.1.2","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.1","local_port":51514,"remote_addr":"10.0.3.5","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"1.1.1.1/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":5}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":7}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"1.1.1.1/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.1.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.2.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.3.0/24","result":"Reject"}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":37086}}}} -{"Protocol":{"NbrTimer":{"nbr_addr":"10.0.1.2","timer":"AutoStart"}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":48764}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.1","local_port":179,"remote_addr":"10.0.3.5","remote_port":35534}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.3.5","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.2.4","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.1","local_port":48658,"remote_addr":"10.0.1.2","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Err":{"TcpConnClosed":null}}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.1","local_port":179,"remote_addr":"10.0.1.2","remote_port":37088}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.1","local_port":51526,"remote_addr":"10.0.3.5","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.1","local_port":34164,"remote_addr":"10.0.2.4","remote_port":179}}}} +{"Protocol":{"NbrTimer":{"nbr_addr":"10.0.1.2","timer":"AutoStart"}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"10.0.7.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"10.0.6.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.1","local_port":37758,"remote_addr":"10.0.1.2","remote_port":179}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"10.0.4.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]}}}}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006,65005]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006]}]},"nexthop":"10.0.3.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.3.5","metric":0}}} {"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006,65005]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.2.4","metric":0}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}]]}}}} {"Ibus":{"NexthopUpd":{"addr":"10.0.1.2","metric":0}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006,65004]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006,65004]}]},"nexthop":"10.0.3.5"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.1.2","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.1","local_port":179,"remote_addr":"10.0.2.4","remote_port":44236}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Err":{"TcpConnClosed":null}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"unreach":{"prefixes":["5.5.5.5/32"]}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"unreach":{"prefixes":["4.4.4.4/32"]}}}}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003,65006]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003,65006]}]},"nexthop":"10.0.1.2"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.1.2","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.1","local_port":179,"remote_addr":"10.0.2.4","remote_port":44242}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.2.4","metric":0}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.1","local_port":59006,"remote_addr":"10.0.3.5","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Err":{"TcpConnClosed":null}}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.4","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.4","labels":[],"resolved":[{"Address":{"ifindex":5,"addr":"10.0.2.4","labels":[]}}]}}]}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.1","local_port":179,"remote_addr":"10.0.3.5","remote_port":44436}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"5.5.5.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.3.5","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]]}}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.5","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.5","labels":[],"resolved":[{"Address":{"ifindex":7,"addr":"10.0.3.5","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006]}]},"nexthop":"10.0.3.5"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003,65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003,65006]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006,65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006,65003]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006,65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.3.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006,65003]}]},"nexthop":"10.0.3.5"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.4","labels":[],"resolved":[]}},{"Recursive":{"addr":"10.0.3.5","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.4","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.5","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.1.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.2.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.4","labels":[],"resolved":[{"Address":{"ifindex":5,"addr":"10.0.2.4","labels":[]}}]}},{"Recursive":{"addr":"10.0.3.5","labels":[],"resolved":[{"Address":{"ifindex":7,"addr":"10.0.3.5","labels":[]}}]}}]}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.2","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.4","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.5","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/ibus.jsonl index b61201395..5a81585d9 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/ibus.jsonl @@ -1,10 +1,9 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} +{"NexthopTrack":{"addr":"10.0.3.5"}} +{"NexthopTrack":{"addr":"10.0.2.4"}} {"NexthopTrack":{"addr":"10.0.1.2"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.2","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.2.4"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.4","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.3.5"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.5","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.4","labels":[],"resolved":[]}},{"Recursive":{"addr":"10.0.3.5","labels":[],"resolved":[]}}]}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-notif.jsonl index 31d49ceb2..dabeeed5b 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-notif.jsonl @@ -1,3 +1,3 @@ -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.1.2"}}}}]}}} +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.3.5"}}}}]}}} {"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.2.4"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.3.5"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.1.2"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-state.json index 5e53de58a..31fb62e11 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/northbound-state.json @@ -12,13 +12,13 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } } ] }, "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } }, "neighbors": { @@ -27,7 +27,7 @@ "remote-address": "10.0.1.2", "local-address": "10.0.1.1", "peer-type": "external", - "identifier": "2.2.2.2", + "identifier": "10.0.4.2", "timers": { "negotiated-hold-time": 90 }, @@ -36,9 +36,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, + "received": 2, "sent": 4, - "installed": 3 + "installed": 2 } } ] @@ -114,7 +114,7 @@ "remote-address": "10.0.2.4", "local-address": "10.0.2.1", "peer-type": "external", - "identifier": "4.4.4.4", + "identifier": "10.0.6.4", "timers": { "negotiated-hold-time": 90 }, @@ -123,9 +123,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, - "sent": 4, - "installed": 3 + "received": 2, + "sent": 3, + "installed": 2 } } ] @@ -201,7 +201,7 @@ "remote-address": "10.0.3.5", "local-address": "10.0.3.1", "peer-type": "external", - "identifier": "5.5.5.5", + "identifier": "10.0.7.5", "timers": { "negotiated-hold-time": 90 }, @@ -210,9 +210,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, - "sent": 5, - "installed": 3 + "received": 2, + "sent": 4, + "installed": 2 } } ] @@ -312,24 +312,6 @@ "next-hop": "10.0.1.2" } }, - { - "index": "5246163599190634569", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65002, - 65003 - ] - } - ] - }, - "next-hop": "10.0.1.2" - } - }, { "index": "15741648029690357667", "attributes": { @@ -384,25 +366,6 @@ "next-hop": "10.0.2.4" } }, - { - "index": "12590424143591910245", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65004, - 65006, - 65003 - ] - } - ] - }, - "next-hop": "10.0.2.4" - } - }, { "index": "11002054795911351509", "attributes": { @@ -437,25 +400,6 @@ }, "next-hop": "10.0.3.5" } - }, - { - "index": "10641704557835844179", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65005, - 65006, - 65003 - ] - } - ] - }, - "next-hop": "10.0.3.5" - } } ] }, @@ -479,12 +423,6 @@ "path-id": 0, "attr-index": "6394326199200417693" }, - { - "prefix": "3.3.3.3/32", - "origin": "10.0.1.2", - "path-id": 0, - "attr-index": "5246163599190634569" - }, { "prefix": "4.4.4.4/32", "origin": "10.0.2.4", @@ -519,12 +457,6 @@ "attr-index": "6394326199200417693", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5246163599190634569", - "eligible-route": true - }, { "prefix": "6.6.6.6/32", "path-id": 0, @@ -543,12 +475,6 @@ "attr-index": "6394326199200417693", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5246163599190634569", - "eligible-route": true - }, { "prefix": "6.6.6.6/32", "path-id": 0, @@ -625,12 +551,6 @@ "adj-rib-in-pre": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "12590424143591910245", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -649,13 +569,6 @@ "adj-rib-in-post": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "12590424143591910245", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -686,12 +599,6 @@ "attr-index": "6394326199200417693", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5246163599190634569", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -716,12 +623,6 @@ "attr-index": "6394326199200417693", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5246163599190634569", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -737,12 +638,6 @@ "adj-rib-in-pre": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "10641704557835844179", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -761,13 +656,6 @@ "adj-rib-in-post": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "10641704557835844179", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -799,12 +687,6 @@ "attr-index": "6394326199200417693", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5246163599190634569", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -835,12 +717,6 @@ "attr-index": "6394326199200417693", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5246163599190634569", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/protocol.jsonl index 7af947bf8..d6be2eab4 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt1/output/protocol.jsonl @@ -1,20 +1,15 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.1.1"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.4","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.5","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.4","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.5","msg":{"Keepalive":{}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.4","msg":{"Keepalive":{}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.2","msg":{"Keepalive":{}}}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.5","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}]}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.4","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.2.1"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}},{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]},"nexthop":"10.0.2.1"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.5","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.5","msg":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.5","msg":{"Keepalive":{}}}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.4","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.2.1"}}}}]}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.5","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}},{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]},"nexthop":"10.0.3.1"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.4","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.1.1"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.5","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.3.1"}}}}]}}} \ No newline at end of file +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.1.1"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.2","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}},{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.1.1"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.4","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.5","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}},{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.3.1"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/config.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/config.json index 2c02e9bd4..e5430cf4a 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/config.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/config.json @@ -2,19 +2,26 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth2", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": { + "address": [ + { + "ip": "2.2.2.2", + "prefix-length": 32 + } + ] + } } ] }, @@ -23,7 +30,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65002, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/events.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/events.jsonl index 94216f173..59e8646c6 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/events.jsonl @@ -1,75 +1,57 @@ +{"Ibus":{"RouterIdUpdate":"10.0.4.2"}} {"Ibus":{"RouterIdUpdate":"2.2.2.2"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"2.2.2.2/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":37086,"remote_addr":"10.0.1.1","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"2.2.2.2/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.1.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.4.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.4.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"2.2.2.2/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.1.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.4.0/24","result":"Reject"}}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.2","local_port":179,"remote_addr":"10.0.1.1","remote_port":48658}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"NbrTimer":{"nbr_addr":"10.0.1.1","timer":"AutoStart"}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.2","local_port":179,"remote_addr":"10.0.1.1","remote_port":37752}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.4.2","local_port":179,"remote_addr":"10.0.4.3","remote_port":50754}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.4.3","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":37088,"remote_addr":"10.0.1.1","remote_port":179}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.4.2","local_port":51588,"remote_addr":"10.0.4.3","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Err":{"TcpConnClosed":null}}}}} +{"Protocol":{"NbrTimer":{"nbr_addr":"10.0.1.1","timer":"AutoStart"}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.4.2","local_port":45124,"remote_addr":"10.0.4.3","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.1.2","local_port":48764,"remote_addr":"10.0.1.1","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Err":"TcpConnClosed"}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Err":"TcpConnClosed"}}}} +{"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.1.2","local_port":179,"remote_addr":"10.0.1.1","remote_port":37758}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"10.0.3.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.1.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.1.1"}}}}]]}}}} {"Ibus":{"NexthopUpd":{"addr":"10.0.1.1","metric":0}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.4.2","local_port":179,"remote_addr":"10.0.4.3","remote_port":41756}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Err":{"TcpConnClosed":null}}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.1.1","labels":[]}}]}}]}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.4.2","local_port":179,"remote_addr":"10.0.4.3","remote_port":41772}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.4.2","local_port":179,"remote_addr":"10.0.4.3","remote_port":50760}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"10.0.5.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.1.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.4.3"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.4.3","metric":0}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.3","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.4.3"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.3","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.4.3","labels":[]}}]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.1.1"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.1.1","labels":[]}}]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]}}}}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.1.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.1.1","labels":[]}}]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.1.1"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.3","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.3","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.4.3","labels":[]}}]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.4.3","metric":0}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65004]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65004]}]},"nexthop":"10.0.4.3"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65005]}]},"nexthop":"10.0.4.3"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65004]}]},"nexthop":"10.0.4.3"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65005]}]},"nexthop":"10.0.4.3"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.1.1"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.1.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.4.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.1.1"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.1.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.1.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.1.1","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.3","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/ibus.jsonl index 469c0f063..7a78414d8 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/ibus.jsonl @@ -2,8 +2,8 @@ {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} {"NexthopTrack":{"addr":"10.0.1.1"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.4.3"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.3","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.1.1","labels":[],"resolved":[]}}]}} +{"NexthopTrack":{"addr":"10.0.4.3"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.3","labels":[],"resolved":[]}}]}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/northbound-state.json index 315184cd5..660f3c276 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/northbound-state.json @@ -12,13 +12,13 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } } ] }, "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } }, "neighbors": { @@ -27,7 +27,7 @@ "remote-address": "10.0.1.1", "local-address": "10.0.1.2", "peer-type": "external", - "identifier": "1.1.1.1", + "identifier": "10.0.3.1", "timers": { "negotiated-hold-time": 90 }, @@ -37,7 +37,7 @@ "name": "iana-bgp-types:ipv4-unicast", "prefixes": { "received": 4, - "sent": 3, + "sent": 2, "installed": 4 } } @@ -114,7 +114,7 @@ "remote-address": "10.0.4.3", "local-address": "10.0.4.2", "peer-type": "external", - "identifier": "3.3.3.3", + "identifier": "10.0.5.3", "timers": { "negotiated-hold-time": 90 }, @@ -123,9 +123,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 4, + "received": 3, "sent": 4, - "installed": 4 + "installed": 3 } } ] @@ -280,23 +280,6 @@ "next-hop": "10.0.1.1" } }, - { - "index": "8302881705134891850", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65003 - ] - } - ] - }, - "next-hop": "10.0.4.3" - } - }, { "index": "2791899462403584195", "attributes": { @@ -375,12 +358,6 @@ "path-id": 0, "attr-index": "9414355416643581871" }, - { - "prefix": "3.3.3.3/32", - "origin": "10.0.4.3", - "path-id": 0, - "attr-index": "8302881705134891850" - }, { "prefix": "4.4.4.4/32", "origin": "10.0.1.1", @@ -476,12 +453,6 @@ "attr-index": "9414355416643581871", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "8302881705134891850", - "eligible-route": true - }, { "prefix": "6.6.6.6/32", "path-id": 0, @@ -500,12 +471,6 @@ "attr-index": "9414355416643581871", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "8302881705134891850", - "eligible-route": true - }, { "prefix": "6.6.6.6/32", "path-id": 0, @@ -521,12 +486,6 @@ "adj-rib-in-pre": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "8302881705134891850", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -551,12 +510,6 @@ "adj-rib-in-post": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "8302881705134891850", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/protocol.jsonl index c26b8d8a4..4c6973bb2 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt2/output/protocol.jsonl @@ -1,14 +1,14 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.3","msg":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.1.1","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} {"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.1.2"}}}}]}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.3","msg":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.3","msg":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.3","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.4.2"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003]}]},"nexthop":"10.0.1.2"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004]}]},"nexthop":"10.0.4.2"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65005]}]},"nexthop":"10.0.4.2"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.4.2"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004]}]},"nexthop":"10.0.4.2"}}}},{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004,65006]}]},"nexthop":"10.0.4.2"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65005]}]},"nexthop":"10.0.4.2"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.3","msg_list":[{"Update":{"unreach":{"prefixes":["6.6.6.6/32"]}}}]}}} {"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.1.1","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.1.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65003,65006]}]},"nexthop":"10.0.1.2"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/config.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/config.json index ea5687d2d..d5fa5d498 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/config.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/config.json @@ -2,17 +2,24 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": { + "address": [ + { + "ip": "3.3.3.3", + "prefix-length": 32 + } + ] + } }, { - "name": "eth1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth2", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} } @@ -23,7 +30,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65003, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/events.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/events.jsonl index 015c7e67e..738a6b3b8 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/events.jsonl @@ -1,71 +1,52 @@ -{"Ibus":{"RouterIdUpdate":"3.3.3.3"}} +{"Ibus":{"RouterIdUpdate":"10.0.5.3"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"3.3.3.3/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.4.3","local_port":179,"remote_addr":"10.0.4.2","remote_port":51588}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.4.3","local_port":41756,"remote_addr":"10.0.4.2","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.4.3","local_port":50754,"remote_addr":"10.0.4.2","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.5.3","local_port":51844,"remote_addr":"10.0.5.6","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"3.3.3.3/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.4.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.5.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"3.3.3.3/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.4.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.5.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.4.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.5.0/24","result":"Reject"}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.5.3","local_port":179,"remote_addr":"10.0.5.6","remote_port":51606}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.4.3","local_port":179,"remote_addr":"10.0.4.2","remote_port":45124}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.5.6","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.4.2","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.4.3","local_port":41772,"remote_addr":"10.0.4.2","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"2.2.2.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.5.3","local_port":51860,"remote_addr":"10.0.5.6","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.4.3","local_port":50760,"remote_addr":"10.0.4.2","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"10.0.7.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Open":{"version":4,"my_as":65002,"holdtime":90,"identifier":"10.0.4.2","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65002}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.4.2"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.4.2"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.5.6","metric":0}}} {"Ibus":{"NexthopUpd":{"addr":"10.0.4.2","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.4.2","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.4.2","labels":[]}}]}}]}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.5.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.5.6"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.5.6"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004]}]},"nexthop":"10.0.4.2"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.4.2","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.5.3","local_port":179,"remote_addr":"10.0.5.6","remote_port":41756}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Err":{"TcpConnClosed":null}}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004,65006]}]}}}}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.4.2"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65005]}]},"nexthop":"10.0.4.2"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.4.2","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.5.3","local_port":179,"remote_addr":"10.0.5.6","remote_port":55610}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.4.2"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004]}]},"nexthop":"10.0.4.2"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65005]}]},"nexthop":"10.0.4.2"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.5.6","metric":0}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004]}]},"nexthop":"10.0.4.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65004,65006]}]},"nexthop":"10.0.4.2"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001,65005]}]},"nexthop":"10.0.4.2"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.5.6","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.5.6"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.5.6"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.5.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.5.6"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.5.6"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.4.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002]}]},"nexthop":"10.0.4.2"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Update":{"unreach":{"prefixes":["6.6.6.6/32"]}}}}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.5.6"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.5.6"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"2.2.2.2","remote_addr":"10.0.4.2"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65002,65001]}]},"nexthop":"10.0.4.2"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.5.6","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.5.6","labels":[]}}]}}]}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.4.2","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.5.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.6","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.4.2","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/ibus.jsonl index f934f134f..9b28f94bd 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/ibus.jsonl @@ -1,11 +1,9 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} +{"NexthopTrack":{"addr":"10.0.5.6"}} {"NexthopTrack":{"addr":"10.0.4.2"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.4.2","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.5.6"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.6","labels":[],"resolved":[]}}]}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-notif.jsonl index 082546f5d..ff6356222 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-notif.jsonl @@ -1,2 +1,2 @@ -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.4.2"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.5.6"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.5.6"}}}}]}}} +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.4.2"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-state.json index 7e97a3409..0c55251bf 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/northbound-state.json @@ -12,13 +12,13 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } } ] }, "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } }, "neighbors": { @@ -27,7 +27,7 @@ "remote-address": "10.0.4.2", "local-address": "10.0.4.3", "peer-type": "external", - "identifier": "2.2.2.2", + "identifier": "10.0.4.2", "timers": { "negotiated-hold-time": 90 }, @@ -37,7 +37,7 @@ "name": "iana-bgp-types:ipv4-unicast", "prefixes": { "received": 4, - "sent": 4, + "sent": 3, "installed": 4 } } @@ -114,7 +114,7 @@ "remote-address": "10.0.5.6", "local-address": "10.0.5.3", "peer-type": "external", - "identifier": "6.6.6.6", + "identifier": "10.0.7.6", "timers": { "negotiated-hold-time": 90 }, @@ -124,7 +124,7 @@ "name": "iana-bgp-types:ipv4-unicast", "prefixes": { "received": 4, - "sent": 3, + "sent": 2, "installed": 4 } } @@ -202,12 +202,6 @@ "rib": { "attr-sets": { "attr-set": [ - { - "index": "9414355416643581871", - "attributes": { - "origin": "incomplete" - } - }, { "index": "8894633214946229520", "attributes": { @@ -375,12 +369,6 @@ "path-id": 0, "attr-index": "8894633214946229520" }, - { - "prefix": "3.3.3.3/32", - "origin": "ietf-routing:direct", - "path-id": 0, - "attr-index": "9414355416643581871" - }, { "prefix": "4.4.4.4/32", "origin": "10.0.5.6", @@ -471,12 +459,6 @@ "adj-rib-out-pre": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9414355416643581871", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -501,12 +483,6 @@ "adj-rib-out-post": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9414355416643581871", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -606,12 +582,6 @@ "path-id": 0, "attr-index": "8894633214946229520", "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9414355416643581871", - "eligible-route": true } ] } @@ -630,12 +600,6 @@ "path-id": 0, "attr-index": "8894633214946229520", "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9414355416643581871", - "eligible-route": true } ] } diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/protocol.jsonl index 800a84923..9df75ea29 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt3/output/protocol.jsonl @@ -1,12 +1,8 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.2","msg":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.2","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.2","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.4.3"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.5.6","msg":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.5.6","msg":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.5.6","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.6","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.5.3"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001]}]},"nexthop":"10.0.5.3"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001,65004]}]},"nexthop":"10.0.5.3"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001,65005]}]},"nexthop":"10.0.5.3"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.2","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.6","msg_list":[{"Update":{"unreach":{"prefixes":["4.4.4.4/32","5.5.5.5/32"]}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.2","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65004]}]},"nexthop":"10.0.4.3"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65005]}]},"nexthop":"10.0.4.3"}}}}]}}} \ No newline at end of file +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.2","msg":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.4.2","msg":{"Keepalive":{}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.4.2","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006]}]},"nexthop":"10.0.4.3"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65004]}]},"nexthop":"10.0.4.3"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.4.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65006,65005]}]},"nexthop":"10.0.4.3"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.6","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001]}]},"nexthop":"10.0.5.3"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/config.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/config.json index 2bcb81e2b..135c98dd0 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/config.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/config.json @@ -2,19 +2,26 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth2", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": { + "address": [ + { + "ip": "4.4.4.4", + "prefix-length": 32 + } + ] + } } ] }, @@ -23,7 +30,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65004, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/events.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/events.jsonl index 7e22b39ad..a603d269f 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/events.jsonl @@ -1,67 +1,54 @@ +{"Ibus":{"RouterIdUpdate":"10.0.6.4"}} {"Ibus":{"RouterIdUpdate":"4.4.4.4"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"4.4.4.4/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.4","local_port":44236,"remote_addr":"10.0.2.1","remote_port":179}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"4.4.4.4/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.2.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.6.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} -{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"4.4.4.4/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.2.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.6.0/24","result":"Reject"}}}} +{"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"4.4.4.4/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.6.6","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.2.1","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.2.4","local_port":44242,"remote_addr":"10.0.2.1","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.2.1"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.2.1","metric":0}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]},"nexthop":"10.0.2.1"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.2.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.2.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.2.1","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.6.4","local_port":179,"remote_addr":"10.0.6.6","remote_port":45470}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Err":{"TcpConnClosed":null}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.6.4","local_port":49800,"remote_addr":"10.0.6.6","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Err":"TcpConnClosed"}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.4","local_port":179,"remote_addr":"10.0.2.1","remote_port":34158}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Err":"TcpConnClosed"}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.2.1","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.6.4","local_port":179,"remote_addr":"10.0.6.6","remote_port":48884}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.6.4","local_port":179,"remote_addr":"10.0.6.6","remote_port":54622}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"10.0.7.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.2.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]},"nexthop":"10.0.2.1"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.6.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.6.6"}}}}]]}}}} {"Ibus":{"NexthopUpd":{"addr":"10.0.6.6","metric":0}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.6.6"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.6.6","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]},"nexthop":"10.0.6.6"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]}}}}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.6.6"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.6.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.6.6"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]},"nexthop":"10.0.6.6"}}}}]]}}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.6.6","labels":[]}}]}}]}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.2.4","local_port":179,"remote_addr":"10.0.2.1","remote_port":34164}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"10.0.3.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.6.6"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.6.6"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.2.1","metric":0}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.2.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.2.1","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65005]}]},"nexthop":"10.0.2.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.6.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.6.6"}}}}]]}}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.2.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.2.1"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.6","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.2.1","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/ibus.jsonl index dd0643868..ae2731ebe 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/ibus.jsonl @@ -1,10 +1,9 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} +{"NexthopTrack":{"addr":"10.0.6.6"}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[]}}]}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[]}}]}} {"NexthopTrack":{"addr":"10.0.2.1"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.6.6"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.6","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.2.1","labels":[],"resolved":[]}}]}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-notif.jsonl index 1fc76313f..92cceb41b 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-notif.jsonl @@ -1,2 +1,2 @@ -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.2.1"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.6.6"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.6.6"}}}}]}}} +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.2.1"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-state.json index 3498e620b..85730f421 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/northbound-state.json @@ -12,13 +12,13 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } } ] }, "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } }, "neighbors": { @@ -27,7 +27,7 @@ "remote-address": "10.0.2.1", "local-address": "10.0.2.4", "peer-type": "external", - "identifier": "1.1.1.1", + "identifier": "10.0.3.1", "timers": { "negotiated-hold-time": 90 }, @@ -36,9 +36,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 4, - "sent": 3, - "installed": 4 + "received": 3, + "sent": 2, + "installed": 3 } } ] @@ -114,7 +114,7 @@ "remote-address": "10.0.6.6", "local-address": "10.0.6.4", "peer-type": "external", - "identifier": "6.6.6.6", + "identifier": "10.0.7.6", "timers": { "negotiated-hold-time": 90 }, @@ -123,9 +123,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 4, + "received": 3, "sent": 4, - "installed": 4 + "installed": 3 } } ] @@ -243,25 +243,6 @@ "next-hop": "10.0.2.1" } }, - { - "index": "3966178891496352615", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65001, - 65002, - 65003 - ] - } - ] - }, - "next-hop": "10.0.2.1" - } - }, { "index": "17618190966952928596", "attributes": { @@ -297,24 +278,6 @@ "next-hop": "10.0.6.6" } }, - { - "index": "7311783102225076495", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65006, - 65003 - ] - } - ] - }, - "next-hop": "10.0.6.6" - } - }, { "index": "2091166551134071149", "attributes": { @@ -374,12 +337,6 @@ "path-id": 0, "attr-index": "15266389772433731856" }, - { - "prefix": "3.3.3.3/32", - "origin": "10.0.6.6", - "path-id": 0, - "attr-index": "7311783102225076495" - }, { "prefix": "4.4.4.4/32", "origin": "ietf-routing:direct", @@ -420,12 +377,6 @@ "attr-index": "15266389772433731856", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "3966178891496352615", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -450,13 +401,6 @@ "attr-index": "15266389772433731856", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "3966178891496352615", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -469,12 +413,6 @@ "adj-rib-out-pre": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "7311783102225076495", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -493,12 +431,6 @@ "adj-rib-out-post": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "7311783102225076495", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -526,12 +458,6 @@ "attr-index": "2091166551134071149", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "7311783102225076495", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -557,12 +483,6 @@ "eligible-route": true, "reject-reason": "iana-bgp-rib-types:as-path-longer" }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "7311783102225076495", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/protocol.jsonl index 16676a9ee..f0272f584 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt4/output/protocol.jsonl @@ -1,12 +1,13 @@ -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}}]}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.6.6","msg":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.6.6","msg":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.6.6","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.6","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002]}]},"nexthop":"10.0.6.4"}}}},{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002,65003]}]},"nexthop":"10.0.6.4"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65005]}]},"nexthop":"10.0.6.4"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.6","msg_list":[{"Update":{"unreach":{"prefixes":["3.3.3.3/32"]}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006,65003]}]},"nexthop":"10.0.2.4"}}}}]}}} \ No newline at end of file +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.6","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}]}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.2.1","msg":{"Keepalive":{}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.2.4"}}}},{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006]}]},"nexthop":"10.0.2.4"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.2.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65006,65005]}]},"nexthop":"10.0.2.4"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.6","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.2.1","msg_list":[{"Update":{"unreach":{"prefixes":["5.5.5.5/32"]}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.6","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002]}]},"nexthop":"10.0.6.4"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65005]}]},"nexthop":"10.0.6.4"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/config.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/config.json index 1a823f634..72fd28b1a 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/config.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/config.json @@ -2,19 +2,26 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth2", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": { + "address": [ + { + "ip": "5.5.5.5", + "prefix-length": 32 + } + ] + } } ] }, @@ -23,7 +30,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65005, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/events.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/events.jsonl index 2b0dd4093..e0748d72a 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/events.jsonl @@ -1,71 +1,59 @@ +{"Ibus":{"RouterIdUpdate":"10.0.7.5"}} {"Ibus":{"RouterIdUpdate":"5.5.5.5"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"5.5.5.5/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.7.5","local_port":58484,"remote_addr":"10.0.7.6","remote_port":179}}}} +{"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"TriggerDecisionProcess":null}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"5.5.5.5/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":6}}]}}} +{"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.3.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.7.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"5.5.5.5/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.3.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.7.0/24","result":"Reject"}}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.5","local_port":179,"remote_addr":"10.0.3.1","remote_port":59006}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"NbrTimer":{"nbr_addr":"10.0.3.1","timer":"AutoStart"}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.5","local_port":179,"remote_addr":"10.0.3.1","remote_port":51514}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.7.5","local_port":179,"remote_addr":"10.0.7.6","remote_port":42048}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.7.6","timer":"AutoStart"}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.7.5","local_port":179,"remote_addr":"10.0.7.6","remote_port":53478}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.5","local_port":44436,"remote_addr":"10.0.3.1","remote_port":179}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.7.5","local_port":38170,"remote_addr":"10.0.7.6","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"1.1.1.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Err":{"TcpConnClosed":null}}}}} +{"Protocol":{"NbrTimer":{"nbr_addr":"10.0.3.1","timer":"AutoStart"}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.7.5","local_port":58492,"remote_addr":"10.0.7.6","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.3.5","local_port":35534,"remote_addr":"10.0.3.1","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"10.0.7.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Err":"TcpConnClosed"}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.7.6"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.7.6","metric":0}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.3.5","local_port":179,"remote_addr":"10.0.3.1","remote_port":51526}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Open":{"version":4,"my_as":65001,"holdtime":90,"identifier":"10.0.3.1","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65001}},"RouteRefresh"]}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.7.6"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}]]}}}} {"Ibus":{"NexthopUpd":{"addr":"10.0.3.1","metric":0}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]},"nexthop":"10.0.3.1"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}}]]}}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[{"Address":{"ifindex":6,"addr":"10.0.3.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[{"Address":{"ifindex":6,"addr":"10.0.3.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[{"Address":{"ifindex":6,"addr":"10.0.3.1","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[{"Address":{"ifindex":6,"addr":"10.0.3.1","labels":[]}}]}}]}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.7.5","local_port":179,"remote_addr":"10.0.7.6","remote_port":38730}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002,65003]}]},"nexthop":"10.0.3.1"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.7.6","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.7.6","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]},"nexthop":"10.0.7.6"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.3.1"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.7.6"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.7.6"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.7.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.7.6"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]},"nexthop":"10.0.7.6"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.7.6","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.1"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"1.1.1.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004,65006]}]},"nexthop":"10.0.3.1"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001]}]},"nexthop":"10.0.3.1"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65004]}]},"nexthop":"10.0.3.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.7.6"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.3.1","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Neighbor":{"identifier":"6.6.6.6","remote_addr":"10.0.7.6"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.6","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.3.1","remote_addr":"10.0.3.1"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65001,65002]}]},"nexthop":"10.0.3.1"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.6","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.3.1","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/ibus.jsonl index fb151b17c..16343ff1a 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/ibus.jsonl @@ -1,10 +1,9 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} +{"NexthopTrack":{"addr":"10.0.7.6"}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[]}}]}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[]}}]}} {"NexthopTrack":{"addr":"10.0.3.1"}} {"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}} -{"NexthopTrack":{"addr":"10.0.7.6"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"6.6.6.6/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.6","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.3.1","labels":[],"resolved":[]}}]}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-notif.jsonl index 9e808d43d..f25cc0797 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-notif.jsonl @@ -1,2 +1,2 @@ -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.3.1"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.7.6"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.7.6"}}}}]}}} +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.3.1"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-state.json index 5661682b6..91964cd4c 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/northbound-state.json @@ -12,13 +12,13 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } } ] }, "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } }, "neighbors": { @@ -27,7 +27,7 @@ "remote-address": "10.0.3.1", "local-address": "10.0.3.5", "peer-type": "external", - "identifier": "1.1.1.1", + "identifier": "10.0.3.1", "timers": { "negotiated-hold-time": 90 }, @@ -36,9 +36,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 5, - "sent": 3, - "installed": 5 + "received": 4, + "sent": 2, + "installed": 4 } } ] @@ -114,7 +114,7 @@ "remote-address": "10.0.7.6", "local-address": "10.0.7.5", "peer-type": "external", - "identifier": "6.6.6.6", + "identifier": "10.0.7.6", "timers": { "negotiated-hold-time": 90 }, @@ -123,9 +123,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 5, + "received": 4, "sent": 4, - "installed": 5 + "installed": 4 } } ] @@ -243,25 +243,6 @@ "next-hop": "10.0.3.1" } }, - { - "index": "14722083475620855737", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65001, - 65002, - 65003 - ] - } - ] - }, - "next-hop": "10.0.3.1" - } - }, { "index": "7303962211254710960", "attributes": { @@ -316,24 +297,6 @@ "next-hop": "10.0.7.6" } }, - { - "index": "9872091682484535929", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65006, - 65003 - ] - } - ] - }, - "next-hop": "10.0.7.6" - } - }, { "index": "9776141461715542306", "attributes": { @@ -412,12 +375,6 @@ "path-id": 0, "attr-index": "16207130217973107571" }, - { - "prefix": "3.3.3.3/32", - "origin": "10.0.7.6", - "path-id": 0, - "attr-index": "9872091682484535929" - }, { "prefix": "4.4.4.4/32", "origin": "10.0.3.1", @@ -458,12 +415,6 @@ "attr-index": "16207130217973107571", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "14722083475620855737", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -494,13 +445,6 @@ "attr-index": "16207130217973107571", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "14722083475620855737", - "eligible-route": true, - "reject-reason": "iana-bgp-rib-types:as-path-longer" - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -520,12 +464,6 @@ "adj-rib-out-pre": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9872091682484535929", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -544,12 +482,6 @@ "adj-rib-out-post": { "routes": { "route": [ - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9872091682484535929", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -583,12 +515,6 @@ "attr-index": "9776141461715542306", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9872091682484535929", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -621,12 +547,6 @@ "eligible-route": true, "reject-reason": "iana-bgp-rib-types:as-path-longer" }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "9872091682484535929", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/protocol.jsonl index a1f4f69e0..0e9763cd9 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt5/output/protocol.jsonl @@ -1,12 +1,12 @@ {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.7.6","msg":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"5.5.5.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.1","msg":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"5.5.5.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.1","msg":{"Keepalive":{}}}}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.1","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}}]}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.7.6","msg":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"5.5.5.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.7.6","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.6","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001]}]},"nexthop":"10.0.7.5"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002]}]},"nexthop":"10.0.7.5"}}}},{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002,65003]}]},"nexthop":"10.0.7.5"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65004]}]},"nexthop":"10.0.7.5"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.1","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006]}]},"nexthop":"10.0.3.5"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.6","msg_list":[{"Update":{"unreach":{"prefixes":["3.3.3.3/32"]}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.1","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006,65003]}]},"nexthop":"10.0.3.5"}}}}]}}} \ No newline at end of file +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.6","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.1","msg":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"5.5.5.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.3.1","msg":{"Keepalive":{}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.1","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.3.5"}}}},{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006]}]},"nexthop":"10.0.3.5"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.3.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65006,65004]}]},"nexthop":"10.0.3.5"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.6","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001]}]},"nexthop":"10.0.7.5"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.3.1","msg_list":[{"Update":{"unreach":{"prefixes":["4.4.4.4/32"]}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.6","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002]}]},"nexthop":"10.0.7.5"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65004]}]},"nexthop":"10.0.7.5"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/config.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/config.json index 843f9dff4..6ba9994a6 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/config.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/config.json @@ -2,19 +2,26 @@ "ietf-interfaces:interfaces": { "interface": [ { - "name": "lo", + "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth1", + "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": {} }, { - "name": "eth2", + "name": "lo", "type": "iana-if-type:ethernetCsmacd", - "ietf-ip:ipv4": {} + "ietf-ip:ipv4": { + "address": [ + { + "ip": "6.6.6.6", + "prefix-length": 32 + } + ] + } } ] }, @@ -23,7 +30,7 @@ "control-plane-protocol": [ { "type": "ietf-bgp:bgp", - "name": "test", + "name": "main", "ietf-bgp:bgp": { "global": { "as": 65006, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/events.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/events.jsonl index 22237dbc9..3c8e38980 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/events.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/events.jsonl @@ -1,91 +1,76 @@ +{"Ibus":{"RouterIdUpdate":"10.0.7.6"}} {"Ibus":{"RouterIdUpdate":"6.6.6.6"}} {"Ibus":{"PolicyMatchSetsUpd":{"prefixes":[[["LOOPBACK","Ipv4"],{"name":"LOOPBACK","mode":"Ipv4","prefixes":[{"prefix":"6.6.6.6/32","masklen_lower":32,"masklen_upper":32}]}]],"neighbors":{},"tags":{},"bgp":{"as_paths":{},"comms":{},"ext_comms":{},"extv6_comms":{},"large_comms":{},"nexthops":{}}}}} {"Ibus":{"PolicyUpd":{"name":"REDIST","stmts":{"1":{"name":"1","prefix_set_match_type":"Any","tag_set_match_type":"Any","conditions":[["MatchPrefixSet",{"MatchPrefixSet":"LOOPBACK"}]],"actions":[["Accept",{"Accept":true}]]}}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.5.6","local_port":41756,"remote_addr":"10.0.5.3","remote_port":179}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.6.6","local_port":45470,"remote_addr":"10.0.6.4","remote_port":179}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.7.6","local_port":53478,"remote_addr":"10.0.7.5","remote_port":179}}}} -{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.7.6","local_port":179,"remote_addr":"10.0.7.5","remote_port":38170}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"6.6.6.6/32","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":1}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.5.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":2}}]}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.6.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":3}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"6.6.6.6/32","result":{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","opaque_attrs":"None","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}}}}} {"Ibus":{"RouteRedistributeAdd":{"protocol":"direct","prefix":"10.0.7.0/24","distance":0,"metric":0,"tag":null,"nexthops":[{"Interface":{"ifindex":4}}]}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.5.0/24","result":"Reject"}}}} -{"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.6.0/24","result":"Reject"}}}} {"Protocol":{"PolicyResult":{"Redistribute":{"afi_safi":"Ipv4Unicast","prefix":"10.0.7.0/24","result":"Reject"}}}} {"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.6.6","local_port":179,"remote_addr":"10.0.6.4","remote_port":49800}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.7.6","local_port":179,"remote_addr":"10.0.7.5","remote_port":58484}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.5.6","local_port":179,"remote_addr":"10.0.5.3","remote_port":51844}}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.7.5","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.5.3","timer":"AutoStart"}}} {"Protocol":{"NbrTimer":{"nbr_addr":"10.0.6.4","timer":"AutoStart"}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.7.6","local_port":38730,"remote_addr":"10.0.7.5","remote_port":179}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.5.6","local_port":55610,"remote_addr":"10.0.5.3","remote_port":179}}}} -{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.6.6","local_port":48884,"remote_addr":"10.0.6.4","remote_port":179}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"5.5.5.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"3.3.3.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"4.4.4.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.7.6","local_port":42048,"remote_addr":"10.0.7.5","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.5.6","local_port":51606,"remote_addr":"10.0.5.3","remote_port":179}}}} +{"Protocol":{"TcpConnect":{"conn_info":{"local_addr":"10.0.6.6","local_port":54622,"remote_addr":"10.0.6.4","remote_port":179}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Err":"TcpConnClosed"}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Err":"TcpConnClosed"}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Open":{"version":4,"my_as":65004,"holdtime":90,"identifier":"10.0.6.4","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65004}},"RouteRefresh"]}}}}}} +{"Protocol":{"TriggerDecisionProcess":null}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Keepalive":{}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]}}}}}}}}} {"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["6.6.6.6/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002,65003]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65004]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001]}]}}}}}}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.7.5","metric":0}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001,65004]}]}}}}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001,65005]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.6.4","metric":0}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.7.6","local_port":179,"remote_addr":"10.0.7.5","remote_port":58492}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Open":{"version":4,"my_as":65005,"holdtime":90,"identifier":"10.0.7.5","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65005}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Ibus":{"NexthopUpd":{"addr":"10.0.7.5","metric":0}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Protocol":{"TcpAccept":{"conn_info":{"local_addr":"10.0.5.6","local_port":179,"remote_addr":"10.0.5.3","remote_port":51860}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Open":{"version":4,"my_as":65003,"holdtime":90,"identifier":"10.0.5.3","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65003}},"RouteRefresh"]}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}],["6.6.6.6/32",{"Accept":{"origin":{"Protocol":"direct"},"route_type":"Internal","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[]}}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Protocol":{"TriggerDecisionProcess":null}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}]]}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002]}]}}}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002,65003]}]}}}}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.6.4"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65005]}]}}}}}}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.5.3"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002,65003]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65004]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001]}]},"nexthop":"10.0.5.3"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65005]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002]}]}}}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.5"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65004]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65002]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005,65001,65004]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}}]]}}}} {"Ibus":{"NexthopUpd":{"addr":"10.0.5.3","metric":0}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001,65004]}]},"nexthop":"10.0.5.3"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001,65005]}]},"nexthop":"10.0.5.3"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002]}]},"nexthop":"10.0.6.4"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65002,65003]}]},"nexthop":"10.0.6.4"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001,65005]}]},"nexthop":"10.0.6.4"}}}}]]}}}} -{"Ibus":{"NexthopUpd":{"addr":"10.0.6.4","metric":0}}} -{"Protocol":{"TriggerDecisionProcess":null}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[]}},{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.6.4","labels":[]}}]}},{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.7.5","labels":[]}}]}}]}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.5.3"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}}],["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.5.3"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}]]}}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.5.3","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[{"Address":{"ifindex":2,"addr":"10.0.5.3","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[{"Address":{"ifindex":3,"addr":"10.0.6.4","labels":[]}}]}}]}}} -{"Ibus":{"RouteRedistributeAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[{"Address":{"ifindex":4,"addr":"10.0.7.5","labels":[]}}]}}]}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"unreach":{"prefixes":["4.4.4.4/32","5.5.5.5/32"]}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Update":{"unreach":{"prefixes":["3.3.3.3/32"]}}}}}}} -{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Update":{"unreach":{"prefixes":["3.3.3.3/32"]}}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.3"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001]}]}}}}}}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Import","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002,65001]}]},"nexthop":"10.0.5.3"}}}}]]}}}} {"Protocol":{"TriggerDecisionProcess":null}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.5.3"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"5.5.5.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} -{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["3.3.3.3/32",{"Accept":{"origin":{"Neighbor":{"identifier":"3.3.3.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003]}]},"nexthop":"10.0.5.3"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"4.4.4.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.5.3","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.6.4","afi_safi":"Ipv4Unicast","routes":[["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}}],["5.5.5.5/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.7.5","remote_addr":"10.0.7.5"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65005]}]},"nexthop":"10.0.7.5"}}}}]]}}}} +{"Protocol":{"PolicyResult":{"Neighbor":{"policy_type":"Export","nbr_addr":"10.0.7.5","afi_safi":"Ipv4Unicast","routes":[["1.1.1.1/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004,65001]}]},"nexthop":"10.0.6.4"}}}}],["2.2.2.2/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.5.3","remote_addr":"10.0.5.3"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65003,65002]}]},"nexthop":"10.0.5.3"}}}}],["4.4.4.4/32",{"Accept":{"origin":{"Neighbor":{"identifier":"10.0.6.4","remote_addr":"10.0.6.4"}},"route_type":"External","attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65004]}]},"nexthop":"10.0.6.4"}}}}]]}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.6.4","msg":{"Ok":{"Keepalive":{}}}}}} +{"Protocol":{"NbrRx":{"nbr_addr":"10.0.7.5","msg":{"Ok":{"Keepalive":{}}}}}} {"Protocol":{"NbrRx":{"nbr_addr":"10.0.5.3","msg":{"Ok":{"Keepalive":{}}}}}} diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/ibus.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/ibus.jsonl index 98b7aae75..c8be1c5b8 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/ibus.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/ibus.jsonl @@ -1,10 +1,9 @@ {"RouterIdSub":{}} {"RouteRedistributeSub":{"protocol":"direct","af":"Ipv4"}} -{"NexthopTrack":{"addr":"10.0.7.5"}} -{"NexthopTrack":{"addr":"10.0.5.3"}} {"NexthopTrack":{"addr":"10.0.6.4"}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[]}},{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"3.3.3.3/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[]}}]}} {"RouteIpAdd":{"protocol":"bgp","prefix":"4.4.4.4/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[]}}]}} -{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[]}}]}} \ No newline at end of file +{"NexthopTrack":{"addr":"10.0.7.5"}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"5.5.5.5/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[]}}]}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"1.1.1.1/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.6.4","labels":[],"resolved":[]}},{"Recursive":{"addr":"10.0.7.5","labels":[],"resolved":[]}}]}} +{"NexthopTrack":{"addr":"10.0.5.3"}} +{"RouteIpAdd":{"protocol":"bgp","prefix":"2.2.2.2/32","distance":20,"metric":0,"tag":null,"nexthops":[{"Recursive":{"addr":"10.0.5.3","labels":[],"resolved":[]}}]}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-notif.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-notif.jsonl index 4968c2452..ce4f47264 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-notif.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-notif.jsonl @@ -1,3 +1,3 @@ +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.6.4"}}}}]}}} {"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.7.5"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.5.3"}}}}]}}} -{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.6.4"}}}}]}}} \ No newline at end of file +{"ietf-routing:routing":{"control-plane-protocols":{"control-plane-protocol":[{"type":"ietf-bgp:bgp","name":"test","ietf-bgp:bgp":{"neighbors":{"established":{"remote-address":"10.0.5.3"}}}}]}}} \ No newline at end of file diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-state.json b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-state.json index 8b2d8f469..dd79fac4f 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-state.json +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/northbound-state.json @@ -12,13 +12,13 @@ { "name": "iana-bgp-types:ipv4-unicast", "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } } ] }, "statistics": { - "total-prefixes": 6 + "total-prefixes": 5 } }, "neighbors": { @@ -27,7 +27,7 @@ "remote-address": "10.0.5.3", "local-address": "10.0.5.6", "peer-type": "external", - "identifier": "3.3.3.3", + "identifier": "10.0.5.3", "timers": { "negotiated-hold-time": 90 }, @@ -36,9 +36,9 @@ { "name": "iana-bgp-types:ipv4-unicast", "prefixes": { - "received": 3, + "received": 2, "sent": 4, - "installed": 3 + "installed": 2 } } ] @@ -114,7 +114,7 @@ "remote-address": "10.0.6.4", "local-address": "10.0.6.6", "peer-type": "external", - "identifier": "4.4.4.4", + "identifier": "10.0.6.4", "timers": { "negotiated-hold-time": 90 }, @@ -124,7 +124,7 @@ "name": "iana-bgp-types:ipv4-unicast", "prefixes": { "received": 4, - "sent": 4, + "sent": 3, "installed": 4 } } @@ -201,7 +201,7 @@ "remote-address": "10.0.7.5", "local-address": "10.0.7.6", "peer-type": "external", - "identifier": "5.5.5.5", + "identifier": "10.0.7.5", "timers": { "negotiated-hold-time": 90 }, @@ -211,7 +211,7 @@ "name": "iana-bgp-types:ipv4-unicast", "prefixes": { "received": 4, - "sent": 5, + "sent": 4, "installed": 4 } } @@ -295,23 +295,6 @@ "origin": "incomplete" } }, - { - "index": "5310421577697998349", - "attributes": { - "origin": "incomplete", - "as-path": { - "segment": [ - { - "type": "iana-bgp-types:as-sequence", - "member": [ - 65003 - ] - } - ] - }, - "next-hop": "10.0.5.3" - } - }, { "index": "10596318081007188200", "attributes": { @@ -517,12 +500,6 @@ "path-id": 0, "attr-index": "10596318081007188200" }, - { - "prefix": "3.3.3.3/32", - "origin": "10.0.5.3", - "path-id": 0, - "attr-index": "5310421577697998349" - }, { "prefix": "4.4.4.4/32", "origin": "10.0.6.4", @@ -562,12 +539,6 @@ "path-id": 0, "attr-index": "10596318081007188200", "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5310421577697998349", - "eligible-route": true } ] } @@ -587,12 +558,6 @@ "path-id": 0, "attr-index": "10596318081007188200", "eligible-route": true - }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5310421577697998349", - "eligible-route": true } ] } @@ -731,12 +696,6 @@ "attr-index": "10596318081007188200", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5310421577697998349", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -761,12 +720,6 @@ "attr-index": "10596318081007188200", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5310421577697998349", - "eligible-route": true - }, { "prefix": "5.5.5.5/32", "path-id": 0, @@ -863,12 +816,6 @@ "attr-index": "10596318081007188200", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5310421577697998349", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, @@ -899,12 +846,6 @@ "attr-index": "10596318081007188200", "eligible-route": true }, - { - "prefix": "3.3.3.3/32", - "path-id": 0, - "attr-index": "5310421577697998349", - "eligible-route": true - }, { "prefix": "4.4.4.4/32", "path-id": 0, diff --git a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/protocol.jsonl b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/protocol.jsonl index f9573e840..69b9083df 100644 --- a/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/protocol.jsonl +++ b/holo-bgp/tests/conformance/topologies/topo2-1/rt6/output/protocol.jsonl @@ -1,15 +1,19 @@ {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.7.5","msg":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.5.3","msg":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.6.4","msg":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.6.4","msg":{"Keepalive":{}}}}} +{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.4","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.6.6"}}}}]}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.7.5","msg":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.7.5","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.5","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.7.6"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.4","msg_list":[{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.6.6"}}}}]}}} +{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.5.3","msg":{"Open":{"version":4,"my_as":65006,"holdtime":90,"identifier":"6.6.6.6","capabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},{"FourOctetAsNumber":{"asn":65006}},"RouteRefresh"]}}}}} {"NbrTx":{"SendMessage":{"nbr_addr":"10.0.5.3","msg":{"Keepalive":{}}}}} -{"NbrTx":{"SendMessage":{"nbr_addr":"10.0.6.4","msg":{"Keepalive":{}}}}} {"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"UpdateCapabilities":[{"MultiProtocol":{"afi":"Ipv4","safi":"Unicast"}},"FourOctetAsNumber","RouteRefresh"]}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.5","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.7.6"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.3","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.4","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.6.6"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.3","msg_list":[{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.5.6"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.5.6"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.5.6"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.4","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]},"nexthop":"10.0.6.6"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.6.6"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.6.6"}}}}]}}} -{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.5","msg_list":[{"Update":{"reach":{"prefixes":["3.3.3.3/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003]}]},"nexthop":"10.0.7.6"}}}},{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.7.6"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.7.6"}}}},{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.7.6"}}}}]}}} \ No newline at end of file +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.3","msg_list":[{"Update":{"reach":{"prefixes":["6.6.6.6/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006]}]},"nexthop":"10.0.5.6"}}}},{"Update":{"reach":{"prefixes":["4.4.4.4/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004]}]},"nexthop":"10.0.5.6"}}}},{"Update":{"reach":{"prefixes":["5.5.5.5/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65005]}]},"nexthop":"10.0.5.6"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.5.3","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.5.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.5.6"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.5","msg_list":[{"Update":{"reach":{"prefixes":["1.1.1.1/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65004,65001]}]},"nexthop":"10.0.7.6"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.6.4","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.6.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.6.6"}}}}]}}} +{"NbrTx":{"SendMessageList":{"nbr_addr":"10.0.7.5","msg_list":[{"Update":{"reach":{"prefixes":["2.2.2.2/32"],"nexthop":"10.0.7.6"},"attrs":{"base":{"origin":"Incomplete","as_path":{"segments":[{"seg_type":"Sequence","members":[65006,65003,65002]}]},"nexthop":"10.0.7.6"}}}}]}}} \ No newline at end of file