Skip to content

Commit 80a850a

Browse files
author
Szymon Mentel
committed
Add nodes' types and refactor tests
1 parent addefd4 commit 80a850a

2 files changed

Lines changed: 28 additions & 28 deletions

File tree

src/dobby_oflib.erl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ publish_new_flow(SrcEndpoint, DstEndpoint, OpenFlowPath) ->
6868

6969
publish_net_flow_identifer(Src, Dst) ->
7070
%% TODO: In transaction
71-
NfId = net_flow_identifier(Src, Dst),
72-
publish(Src, NfId, link_metadata(ep_to_nf, Src)),
71+
NfNode = {NfId, _NfMetadata} = net_flow_identifier(Src, Dst),
72+
publish(Src, NfNode, link_metadata(ep_to_nf, Src)),
7373
publish(NfId, Dst, link_metadata(ep_to_nf, NfId)),
7474
NfId.
7575

@@ -93,12 +93,12 @@ publish_openflow_path(NetFlowId, [], LastId) ->
9393
link_metadata(of_path_ends_at, {NetFlowId, LastId})).
9494

9595
net_flow_identifier(Src, Dst) ->
96-
<<"NF:", Src/binary, ":", Dst/binary>>.
96+
{<<"NF:", Src/binary, ":", Dst/binary>>, #{type => of_net_flow}}.
9797

9898
flow_mod_identifier({Dpid, OFVersion, FlowMod}) ->
9999
{_Matches, _Instructions, Opts} = FlowMod,
100100
Cookie = proplists:get_value(cookie, Opts),
101-
{Cookie, #{dpid => Dpid, of_version => OFVersion}}.
101+
{Cookie, #{type => of_flow_mod, dpid => Dpid, of_version => OFVersion}}.
102102

103103
link_metadata(Type = ep_to_nf, SrcIdentifier) ->
104104
#{type => Type, src => SrcIdentifier};

test/dobby_oflib_SUITE.erl

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6265
assert_flow_path_published(NetFlowId, FlowPath) ->
6366
FlatFlowPath = flatten_flow_path(FlowPath),
6467
assert_flow_path_published(NetFlowId, FlatFlowPath,
6568
_PrevIdentifier = NetFlowId).
6669

6770
assert_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);
7475
assert_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);
8180
assert_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() ->
9794
flow_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

102102
flatten_flow_path(FlowPath0) ->
103103
Fun = fun({Dpid, {OFVersion, FlowMods}}) ->

0 commit comments

Comments
 (0)