make module compile again (m2ua->xua changes)

This commit is contained in:
Harald Welte 2012-05-30 12:05:18 +02:00
parent dd35d2c8fb
commit e58b38f7a8
2 changed files with 55 additions and 32 deletions

View File

@ -7,19 +7,20 @@
bssmap_codec, bssmap_codec,
isup_codec, isup_codec,
mtp2_lsc, mtp2_iac, mtp2_lsc, mtp2_iac,
m2ua_codec, m2ua_codec, sctp_m2ua,
m2pa_codec, sctp_m2pa, m2pa_codec, sctp_m2pa,
m3ua_codec, m3ua_core, m3ua_example, m3ua_asp, m3ua_codec, m3ua_core, m3ua_example, m3ua_asp,
mtp3_codec, mtp3_hmdt, mtp3_sltc, mtp3_codec, mtp3_hmdt, mtp3_sltc,
xua_codec, sua_sccp_conv, sua_asp, sctp_sua, xua_codec, sua_sccp_conv, sua_asp, sctp_sua,
xua_asp_fsm, xua_asp_fsm, xua_as_fsm, xua_asp_test,
sccp_codec, sccp_codec,
osmo_ss7_sup, osmo_ss7_app, osmo_ss7_sup, osmo_ss7_app,
ss7_links, ss7_link_m3ua, ss7_link_ipa_client, ss7_links, ss7_link_m3ua, ss7_link_ipa_client,
ss7_routes, ss7_routes,
ss7_service_dump, ss7_service_dump,
osmo_ss7_gtt, osmo_ss7_gtt,
osmo_ss7_pcap osmo_ss7_pcap,
sg_as_sup, sg_asp_sup
]}, ]},
{registered, [osmo_ss7_app]}, {registered, [osmo_ss7_app]},
{mod, {osmo_ss7_app, []}}, {mod, {osmo_ss7_app, []}},

View File

@ -23,7 +23,9 @@
-include_lib("kernel/include/inet_sctp.hrl"). -include_lib("kernel/include/inet_sctp.hrl").
-include("osmo_util.hrl"). -include("osmo_util.hrl").
-include("xua.hrl").
-include("m2ua.hrl"). -include("m2ua.hrl").
-include("m3ua.hrl").
-export([init/1, terminate/3, code_change/4, handle_event/3, handle_info/3]). -export([init/1, terminate/3, code_change/4, handle_event/3, handle_info/3]).
@ -40,8 +42,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
init(_InitOpts) -> init(_InitOpts) ->
Fun = fixme, % FIXME
{ok, Asp} = gen_fsm:start_link(xua_asp_fsm, [sua_asp, [], Fun, [self()], self()], [{debug, [trace]}]), {ok, Asp} = gen_fsm:start_link(xua_asp_fsm, [sua_asp, [], Fun, [self()], self()], [{debug, [trace]}]),
{ok, #m2ua_state{last_bsn_received=16#ffffff, last_fsn_sent=16#ffffff, asp_pid=Asp}} {ok, #m2ua_state{last_bsn_received=16#ffffff, last_fsn_sent=16#ffffff, asp_pid=Asp}}.
terminate(Reason, _State, _LoopDat) -> terminate(Reason, _State, _LoopDat) ->
io:format("Terminating ~p (Reason ~p)~n", [?MODULE, Reason]), io:format("Terminating ~p (Reason ~p)~n", [?MODULE, Reason]),
@ -79,48 +82,59 @@ rx_sctp(#sctp_sndrcvinfo{ppid = ?M2UA_PPID}, Data, State, LoopDat) ->
{ok, M2ua} = xua_codec:parse_msg(Data), {ok, M2ua} = xua_codec:parse_msg(Data),
% FIXME: check sequenc number linearity % FIXME: check sequenc number linearity
case M2ua of case M2ua of
#xua_msg{msg_class = ?M3UA_MSGC_SSNM} ->
% FIXME
{ignore, LoopDat};
#xua_msg{msg_class = ?M3UA_MSGC_ASPSM} -> #xua_msg{msg_class = ?M3UA_MSGC_ASPSM} ->
gen_fsm:send_event(Asp, M2ua), gen_fsm:send_event(Asp, M2ua),
{ignore, LoopDat}; {ignore, LoopDat};
#xua_msg{msg_class = ?M3UA_MSGC_ASPTM} -> #xua_msg{msg_class = ?M3UA_MSGC_ASPTM} ->
gen_fsm:send_event(Asp, M2ua), gen_fsm:send_event(Asp, M2ua),
{ignore, LoopDat}; {ignore, LoopDat};
#xua_msg{msg_class = ?M2UA_CLASS_M2UA, #xua_msg{msg_class = ?M2UA_MSGC_MAUP,
msg_type = ?M2UA_TYPE_USER} -> msg_type = ?M2UA_MAUP_MSGT_EST_REQ} ->
Mtp3 = M2pa#m2pa_msg.mtp3, % FIXME: respond with M2UA_MAUP_MSGT_EST_CONF
case LoopDat#m2pa_state.msu_fisu_accepted of error_logger:error_report(["unimplemented message",
1 -> {msg_type, "EST_REQ"}]),
LoopDat2 = LoopDat#m2pa_state{last_bsn_received = FsnRecv}, {ignore, LoopDat};
case Mtp3 of #xua_msg{msg_class = ?M2UA_MSGC_MAUP,
undefined -> msg_type = ?M2UA_MAUP_MSGT_REL_REQ} ->
ok; % FIXME: respond with M2UA_MAUP_MSGT_REL_CONF
_ -> error_logger:error_report(["unimplemented message",
send_userdata_ack(LoopDat2) {msg_type, "REL_REQ"}]),
end, {ignore, LoopDat};
gen_fsm:send_event(LoopDat#m2pa_state.lsc_pid, fisu_msu_received), #xua_msg{msg_class = ?M2UA_MSGC_MAUP,
Prim = osmo_util:make_prim('MTP','TRANSFER',indication, Mtp3), msg_type = ?M2UA_MAUP_MSGT_STATE_REQ} ->
{ok, Prim, LoopDat2}; handle_m2ua_state_req(M2ua),
_ -> {ignore, LoopDat};
{ignore, LoopDat} #xua_msg{msg_class = ?M2UA_MSGC_MAUP,
end; msg_type = ?M2UA_MAUP_MSGT_CONG_IND} ->
% FIXME
error_logger:error_report(["unimplemented message",
{msg_type, "CONG_IND"}]),
{ignore, LoopDat};
#xua_msg{msg_class = ?M2UA_MSGC_MAUP,
msg_type = ?M2UA_MAUP_MSGT_DATA_RETR_REQ} ->
% FIXME
error_logger:error_report(["unimplemented message",
{msg_type, "RETR_REQ"}]),
{ignore, LoopDat};
#xua_msg{msg_class = ?M2UA_MSGC_MAUP,
msg_type = ?M2UA_MAUP_MSGT_DATA} ->
Mtp3 = proplists:get_value(?M2UA_P_M2UA_DATA1, M2ua#xua_msg.payload),
Prim = osmo_util:make_prim('MTP','TRANSFER',indication, Mtp3),
{ignore, LoopDat};
_ -> _ ->
% do something with link related msgs % do something with link related msgs
io:format("M2UA Unknown message ~p in state ~p~n", [M2pa, State]), io:format("M2UA Unknown message ~p in state ~p~n", [M2ua, State]),
{ignore, State, LoopDat} {ignore, State, LoopDat}
end. end.
% MTP-TRANSFER.req has arrived at sctp_core, encapsulate+tx it % MTP-TRANSFER.req has arrived at sctp_core, encapsulate+tx it
mtp_xfer(Mtp3, LoopDat) -> mtp_xfer(Mtp3, LoopDat) ->
Fsn = inc_seq_nr(LoopDat#m2pa_state.last_fsn_sent), M2ua = #xua_msg{msg_class = ?M2UA_MSGC_MAUP,
M2ua = #xua_msg{msg_class = ?M2UA_CLASS_M2UA, msg_type = ?M2UA_MAUP_MSGT_DATA,
msg_type = ?M2UA_TYPE_USER, payload = {?M2UA_P_M2UA_DATA1, length(Mtp3), Mtp3}},
mtp3 = Mtp3},
M2paBin = xua_codec:encode_msg(M2ua), M2paBin = xua_codec:encode_msg(M2ua),
tx_sctp(?M2UA_STREAM_USER, M2paBin), % FIXME tx_sctp(?M2UA_STREAM_USER, M2paBin),
LoopDat2. LoopDat.
state_change(_, established, LoopDat) -> state_change(_, established, LoopDat) ->
% emulate a 'start' from LSC % emulate a 'start' from LSC
@ -132,6 +146,14 @@ state_change(established, _, LoopDat) ->
state_change(_, _, LoopDat) -> state_change(_, _, LoopDat) ->
LoopDat. LoopDat.
handle_m2ua_state_req(M2ua = #xua_msg{payload = Payload}) ->
{?M2UA_P_MAUP_STATE, State} = lists:keyfind(?M2UA_P_MAUP_STATE, 1, Payload),
% FIXME handle_m2ua_state_req(State).
% LOP_SET/CLEAR, EMER_SET/CLEAR, FLUSH_BUFFERSm CONTINUE, CLEAR_RTB, AUDIT, CONG*
% FIXME: respond with M2UA_MAUP_MSGT_STATE_CONF
error_logger:error_report(["unimplemented message",
{msg_type, "STATE_REQ"}]),
true.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% helper functions % helper functions