@@ -197,65 +197,57 @@ mod tests {
197197 use crate :: { connection:: resolve_session_key, session:: PeerId } ;
198198 use slog:: Logger ;
199199 use std:: { net:: Ipv6Addr , sync:: Arc } ;
200- use unnumbered:: { BgpUnnumbered , UnnumberedError } ;
200+ use unnumbered:: { BgpUnnumbered , BgpUnnumberedInterface , UnnumberedError } ;
201201
202202 struct TestUnnumbered {
203- scope_result : Result < Option < String > , UnnumberedError > ,
204- neighbor_result : Result < Option < Ipv6Addr > , UnnumberedError > ,
203+ interface_result :
204+ Result < Option < BgpUnnumberedInterface > , UnnumberedError > ,
205205 }
206206
207207 impl BgpUnnumbered for TestUnnumbered {
208208 fn get_active_interface_by_scope (
209209 & self ,
210210 _scope_id : u32 ,
211- ) -> Result < Option < String > , UnnumberedError > {
212- self . scope_result . clone ( )
211+ ) -> Result < Option < BgpUnnumberedInterface > , UnnumberedError > {
212+ self . interface_result . clone ( )
213213 }
214214
215- fn get_active_interface_scope_id (
215+ fn get_active_interface (
216216 & self ,
217217 _interface : & str ,
218- ) -> Result < Option < u32 > , UnnumberedError > {
218+ ) -> Result < Option < BgpUnnumberedInterface > , UnnumberedError > {
219219 Ok ( None )
220220 }
221-
222- fn get_discovered_ndp_neighbor (
223- & self ,
224- _interface : & str ,
225- ) -> Result < Option < Ipv6Addr > , UnnumberedError > {
226- self . neighbor_result . clone ( )
227- }
228221 }
229222
230223 fn log ( ) -> Logger {
231224 Logger :: root ( slog:: Discard , slog:: o!( ) )
232225 }
233226
234227 fn unnumbered_manager (
235- scope_result : Result < Option < String > , UnnumberedError > ,
228+ interface_result : Result <
229+ Option < BgpUnnumberedInterface > ,
230+ UnnumberedError ,
231+ > ,
236232 ) -> Arc < dyn BgpUnnumbered > {
237- Arc :: new ( TestUnnumbered {
238- scope_result,
239- neighbor_result : Ok ( None ) ,
240- } )
233+ Arc :: new ( TestUnnumbered { interface_result } )
241234 }
242235
243- fn unnumbered_manager_with_neighbor (
244- scope_result : Result < Option < String > , UnnumberedError > ,
245- neighbor_result : Result < Option < Ipv6Addr > , UnnumberedError > ,
246- ) -> Arc < dyn BgpUnnumbered > {
247- Arc :: new ( TestUnnumbered {
248- scope_result ,
249- neighbor_result ,
250- } )
236+ fn active_interface (
237+ discovered_neighbor : Option < Ipv6Addr > ,
238+ ) -> BgpUnnumberedInterface {
239+ BgpUnnumberedInterface {
240+ interface : "eth0" . into ( ) ,
241+ scope_id : 7 ,
242+ discovered_neighbor ,
243+ }
251244 }
252245
253246 #[ test]
254247 fn discovered_link_local_uses_interface_key ( ) {
255- let manager = unnumbered_manager_with_neighbor (
256- Ok ( Some ( "eth0" . into ( ) ) ) ,
257- Ok ( Some ( "fe80::1" . parse ( ) . unwrap ( ) ) ) ,
258- ) ;
248+ let manager = unnumbered_manager ( Ok ( Some ( active_interface ( Some (
249+ "fe80::1" . parse ( ) . unwrap ( ) ,
250+ ) ) ) ) ) ;
259251 let peer = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
260252
261253 let key = resolve_session_key ( peer, Some ( & manager) , & log ( ) ) ;
@@ -265,7 +257,7 @@ mod tests {
265257
266258 #[ test]
267259 fn undiscovered_link_local_uses_ip_key ( ) {
268- let manager = unnumbered_manager ( Ok ( Some ( "eth0" . into ( ) ) ) ) ;
260+ let manager = unnumbered_manager ( Ok ( Some ( active_interface ( None ) ) ) ) ;
269261 let peer = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
270262
271263 let key = resolve_session_key ( peer, Some ( & manager) , & log ( ) ) ;
@@ -275,10 +267,9 @@ mod tests {
275267
276268 #[ test]
277269 fn mismatched_link_local_uses_ip_key ( ) {
278- let manager = unnumbered_manager_with_neighbor (
279- Ok ( Some ( "eth0" . into ( ) ) ) ,
280- Ok ( Some ( "fe80::2" . parse ( ) . unwrap ( ) ) ) ,
281- ) ;
270+ let manager = unnumbered_manager ( Ok ( Some ( active_interface ( Some (
271+ "fe80::2" . parse ( ) . unwrap ( ) ,
272+ ) ) ) ) ) ;
282273 let peer = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
283274
284275 let key = resolve_session_key ( peer, Some ( & manager) , & log ( ) ) ;
@@ -312,7 +303,9 @@ mod tests {
312303
313304 #[ test]
314305 fn non_link_local_address_uses_ip_session_key ( ) {
315- let manager = unnumbered_manager ( Ok ( Some ( "eth0" . into ( ) ) ) ) ;
306+ let manager = unnumbered_manager ( Ok ( Some ( active_interface ( Some (
307+ "fe80::1" . parse ( ) . unwrap ( ) ,
308+ ) ) ) ) ) ;
316309 let peer = "[2001:db8::1]:179" . parse ( ) . unwrap ( ) ;
317310
318311 let key = resolve_session_key ( peer, Some ( & manager) , & log ( ) ) ;
0 commit comments