@@ -45,44 +45,41 @@ should_publish_net_flow(_Config) ->
4545 NetFlowId = dobby_oflib :publish_new_flow (SrcEP , DstEP , FlowPath ),
4646
4747 % % THEN
48- meck :wait (2 , dby , publish , '_' , 2000 ),
49- ? assert (meck :called (dby , publish ,
50- [SrcEP , NetFlowId , #{type => ep_to_nf , src => SrcEP },
51- [persistent ]])),
52- ? assert (meck :called (dby , publish ,
53- [NetFlowId , DstEP , #{type => ep_to_nf , src => NetFlowId },
54- [persistent ]])),
48+ assert_net_flow_published (SrcEP , DstEP , NetFlowId ),
5549 assert_flow_path_published (NetFlowId , FlowPath ).
5650
5751% %%=============================================================================
5852% %% Assertions
5953% %%=============================================================================
6054
55+ assert_net_flow_published (SrcEP , DstEP , NetFlowId ) ->
56+ ? assert (meck :called (dby , publish , [SrcEP , {NetFlowId , #{type => of_net_flow }},
57+ #{type => ep_to_nf , src => SrcEP },
58+ [persistent ]])),
59+ ? assert (meck :called (dby , publish , [NetFlowId ,
60+ DstEP ,
61+ #{type => ep_to_nf , src => NetFlowId },
62+ [persistent ]])).
63+
6164
6265assert_flow_path_published (NetFlowId , FlowPath ) ->
6366 FlatFlowPath = flatten_flow_path (FlowPath ),
6467 assert_flow_path_published (NetFlowId , FlatFlowPath ,
6568 _PrevIdentifier = NetFlowId ).
6669
6770assert_flow_path_published (NetFlowId , [FlowMod | T ], NetFlowId ) ->
68- MD = #{type => of_path_starts_at ,
69- src => NetFlowId ,
70- net_flow_ids => [NetFlowId ]},
71- R = {Id ,_FMD } = flow_mod_identifier (FlowMod ),
72- ? assert (meck :called (dby , publish , [NetFlowId , R , MD , [persistent ]])),
73- assert_flow_path_published (NetFlowId , T , Id );
71+ LinkMd = link_metadata (of_path_starts_at , {NetFlowId , NetFlowId }),
72+ FmNode = {FmId ,_FmMD } = flow_mod_identifier (FlowMod ),
73+ ? assert (meck :called (dby , publish , [NetFlowId , FmNode , LinkMd , [persistent ]])),
74+ assert_flow_path_published (NetFlowId , T , FmId );
7475assert_flow_path_published (NetFlowId , [FlowMod | T ], LastId ) ->
75- MD = #{type => of_path_forwards_to ,
76- src => LastId ,
77- net_flow_ids => [NetFlowId ]},
78- R = {Id ,_FMD } = flow_mod_identifier (FlowMod ),
79- ? assert (meck :called (dby , publish , [LastId , R , MD , [persistent ]])),
80- assert_flow_path_published (NetFlowId , T , Id );
76+ LinkMd = link_metadata (of_path_forwards_to , {NetFlowId , LastId }),
77+ FmNode = {FmId ,_FmMD } = flow_mod_identifier (FlowMod ),
78+ ? assert (meck :called (dby , publish , [LastId , FmNode , LinkMd , [persistent ]])),
79+ assert_flow_path_published (NetFlowId , T , FmId );
8180assert_flow_path_published (NetFlowId , [], LastId ) ->
82- MD = #{type => of_path_ends_at ,
83- src => LastId ,
84- net_flow_ids => [NetFlowId ]},
85- ? assert (meck :called (dby , publish , [LastId , NetFlowId , MD , [persistent ]])).
81+ LinkMd = link_metadata (of_path_ends_at , {NetFlowId , LastId }),
82+ ? assert (meck :called (dby , publish , [LastId , NetFlowId , LinkMd , [persistent ]])).
8683
8784% %%=============================================================================
8885% %% Internal functions
@@ -97,7 +94,10 @@ unmock_dobby() ->
9794flow_mod_identifier ({Dpid , OFVersion , FlowMod }) ->
9895 {_Matches , _Instructions , Opts } = FlowMod ,
9996 Cookie = proplists :get_value (cookie , Opts ),
100- {Cookie , #{dpid => Dpid , of_version => OFVersion }}.
97+ {Cookie , #{type => of_flow_mod , dpid => Dpid , of_version => OFVersion }}.
98+
99+ link_metadata (Type , {NetFlowId , Src }) ->
100+ #{type => Type , src => Src , net_flow_ids => [NetFlowId ]}.
101101
102102flatten_flow_path (FlowPath0 ) ->
103103 Fun = fun ({Dpid , {OFVersion , FlowMods }}) ->
0 commit comments