Compare commits
2 Commits
d5b49d2b55
...
963b0b7da5
| Author | SHA1 | Date | |
|---|---|---|---|
| 963b0b7da5 | |||
| 72553b4fea |
@ -28,7 +28,7 @@
|
|||||||
-ifndef('SDL_DEV_ADDR_PB_H').
|
-ifndef('SDL_DEV_ADDR_PB_H').
|
||||||
-define('SDL_DEV_ADDR_PB_H', true).
|
-define('SDL_DEV_ADDR_PB_H', true).
|
||||||
-record(sdl_dev_addr,
|
-record(sdl_dev_addr,
|
||||||
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
{network_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
|
||||||
mac = <<>> :: iodata() | undefined, % = 2, optional
|
mac = <<>> :: iodata() | undefined, % = 2, optional
|
||||||
net_addr = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
|
net_addr = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
|
||||||
net_bit_len = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits
|
net_bit_len = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits
|
||||||
@ -145,7 +145,7 @@
|
|||||||
-record(sdl_stun_request,
|
-record(sdl_stun_request,
|
||||||
{cookie = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
{cookie = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
||||||
client_id = <<>> :: unicode:chardata() | undefined, % = 2, optional
|
client_id = <<>> :: unicode:chardata() | undefined, % = 2, optional
|
||||||
network_id = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
|
network_id = <<>> :: unicode:chardata() | undefined, % = 3, optional
|
||||||
mac = <<>> :: iodata() | undefined, % = 4, optional
|
mac = <<>> :: iodata() | undefined, % = 4, optional
|
||||||
ip = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits
|
ip = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits
|
||||||
nat_type = 0 :: non_neg_integer() | undefined, % = 6, optional, 32 bits
|
nat_type = 0 :: non_neg_integer() | undefined, % = 6, optional, 32 bits
|
||||||
@ -163,7 +163,7 @@
|
|||||||
-ifndef('SDL_DATA_PB_H').
|
-ifndef('SDL_DATA_PB_H').
|
||||||
-define('SDL_DATA_PB_H', true).
|
-define('SDL_DATA_PB_H', true).
|
||||||
-record(sdl_data,
|
-record(sdl_data,
|
||||||
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
{network_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
|
||||||
src_mac = <<>> :: iodata() | undefined, % = 2, optional
|
src_mac = <<>> :: iodata() | undefined, % = 2, optional
|
||||||
dst_mac = <<>> :: iodata() | undefined, % = 3, optional
|
dst_mac = <<>> :: iodata() | undefined, % = 3, optional
|
||||||
is_p2p = false :: boolean() | 0 | 1 | undefined, % = 4, optional
|
is_p2p = false :: boolean() | 0 | 1 | undefined, % = 4, optional
|
||||||
@ -175,7 +175,7 @@
|
|||||||
-ifndef('SDL_REGISTER_PB_H').
|
-ifndef('SDL_REGISTER_PB_H').
|
||||||
-define('SDL_REGISTER_PB_H', true).
|
-define('SDL_REGISTER_PB_H', true).
|
||||||
-record(sdl_register,
|
-record(sdl_register,
|
||||||
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
{network_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
|
||||||
src_mac = <<>> :: iodata() | undefined, % = 2, optional
|
src_mac = <<>> :: iodata() | undefined, % = 2, optional
|
||||||
dst_mac = <<>> :: iodata() | undefined % = 3, optional
|
dst_mac = <<>> :: iodata() | undefined % = 3, optional
|
||||||
}).
|
}).
|
||||||
@ -184,7 +184,7 @@
|
|||||||
-ifndef('SDL_REGISTER_ACK_PB_H').
|
-ifndef('SDL_REGISTER_ACK_PB_H').
|
||||||
-define('SDL_REGISTER_ACK_PB_H', true).
|
-define('SDL_REGISTER_ACK_PB_H', true).
|
||||||
-record(sdl_register_ack,
|
-record(sdl_register_ack,
|
||||||
{network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
|
{network_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
|
||||||
src_mac = <<>> :: iodata() | undefined, % = 2, optional
|
src_mac = <<>> :: iodata() | undefined, % = 2, optional
|
||||||
dst_mac = <<>> :: iodata() | undefined % = 3, optional
|
dst_mac = <<>> :: iodata() | undefined % = 3, optional
|
||||||
}).
|
}).
|
||||||
|
|||||||
@ -24,12 +24,12 @@ create_table(Tab) when is_atom(Tab) ->
|
|||||||
{type, set}
|
{type, set}
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-spec get_table_name(NetworkId :: integer()) -> TableName :: atom().
|
-spec get_table_name(NetworkId :: binary()) -> TableName :: atom().
|
||||||
get_table_name(NetworkId) when is_integer(NetworkId) ->
|
get_table_name(NetworkId) when is_binary(NetworkId) ->
|
||||||
list_to_atom("client_" ++ integer_to_list(NetworkId)).
|
list_to_atom("client_" ++ binary_to_list(NetworkId)).
|
||||||
|
|
||||||
-spec get_clients(NetworkId :: integer()) -> [Client :: #client{}].
|
-spec get_clients(NetworkId :: binary()) -> [Client :: #client{}].
|
||||||
get_clients(NetworkId) when is_integer(NetworkId) ->
|
get_clients(NetworkId) when is_binary(NetworkId) ->
|
||||||
Tab = get_table_name(NetworkId),
|
Tab = get_table_name(NetworkId),
|
||||||
case mnesia:transaction(fun() -> mnesia:foldl(fun(R, Acc0) -> [R|Acc0] end, [], Tab) end) of
|
case mnesia:transaction(fun() -> mnesia:foldl(fun(R, Acc0) -> [R|Acc0] end, [], Tab) end) of
|
||||||
{'atomic', Items} ->
|
{'atomic', Items} ->
|
||||||
@ -38,8 +38,8 @@ get_clients(NetworkId) when is_integer(NetworkId) ->
|
|||||||
[]
|
[]
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec delete_clients(NetworkId :: integer()) -> ok | {error, Reason :: any()}.
|
-spec delete_clients(NetworkId :: binary()) -> ok | {error, Reason :: any()}.
|
||||||
delete_clients(NetworkId) when is_integer(NetworkId) ->
|
delete_clients(NetworkId) when is_binary(NetworkId) ->
|
||||||
Tab = get_table_name(NetworkId),
|
Tab = get_table_name(NetworkId),
|
||||||
case mnesia:transaction(fun() -> mnesia:clear_table(Tab) end) of
|
case mnesia:transaction(fun() -> mnesia:clear_table(Tab) end) of
|
||||||
{'atomic', ok} ->
|
{'atomic', ok} ->
|
||||||
@ -48,8 +48,8 @@ delete_clients(NetworkId) when is_integer(NetworkId) ->
|
|||||||
{error, Reason}
|
{error, Reason}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec delete_client(NetworkId :: integer(), ClientId :: binary()) -> ok | {error, Reason :: any()}.
|
-spec delete_client(NetworkId :: binary(), ClientId :: binary()) -> ok | {error, Reason :: any()}.
|
||||||
delete_client(NetworkId, ClientId) when is_integer(NetworkId), is_binary(ClientId) ->
|
delete_client(NetworkId, ClientId) when is_binary(NetworkId), is_binary(ClientId) ->
|
||||||
Tab = get_table_name(NetworkId),
|
Tab = get_table_name(NetworkId),
|
||||||
case mnesia:transaction(fun() -> mnesia:delete(Tab, ClientId, write) end) of
|
case mnesia:transaction(fun() -> mnesia:delete(Tab, ClientId, write) end) of
|
||||||
{'atomic', ok} ->
|
{'atomic', ok} ->
|
||||||
@ -58,8 +58,8 @@ delete_client(NetworkId, ClientId) when is_integer(NetworkId), is_binary(ClientI
|
|||||||
{error, Reason}
|
{error, Reason}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec disable_client(NetworkId :: integer(), ClientId :: binary()) -> ok | {error, Reason :: any()}.
|
-spec disable_client(NetworkId :: binary(), ClientId :: binary()) -> ok | {error, Reason :: any()}.
|
||||||
disable_client(NetworkId, ClientId) when is_integer(NetworkId), is_binary(ClientId) ->
|
disable_client(NetworkId, ClientId) when is_binary(NetworkId), is_binary(ClientId) ->
|
||||||
Tab = get_table_name(NetworkId),
|
Tab = get_table_name(NetworkId),
|
||||||
Fun = fun() ->
|
Fun = fun() ->
|
||||||
case mnesia:read(Tab, ClientId, read) of
|
case mnesia:read(Tab, ClientId, read) of
|
||||||
@ -78,9 +78,9 @@ disable_client(NetworkId, ClientId) when is_integer(NetworkId), is_binary(Client
|
|||||||
end.
|
end.
|
||||||
|
|
||||||
%% 分配ip地址的时候,以mac地址为唯一基准
|
%% 分配ip地址的时候,以mac地址为唯一基准
|
||||||
-spec alloc_ip(NetworkId :: integer(), Ips :: list(), ClientId :: binary(), Mac :: binary(), NetAddr0 :: integer()) ->
|
-spec alloc_ip(NetworkId :: binary(), Ips :: list(), ClientId :: binary(), Mac :: binary(), NetAddr0 :: integer()) ->
|
||||||
{ok, Ip :: integer()} | {error, Reason :: any()}.
|
{ok, Ip :: integer()} | {error, Reason :: any()}.
|
||||||
alloc_ip(NetworkId, Ips, ClientId, Mac, NetAddr0) when is_binary(ClientId), is_integer(NetAddr0), is_binary(Mac) ->
|
alloc_ip(NetworkId, Ips, ClientId, Mac, NetAddr0) when is_binary(NetworkId), is_binary(ClientId), is_integer(NetAddr0), is_binary(Mac) ->
|
||||||
case mnesia:transaction(fun() -> alloc_ip0(NetworkId, Ips, ClientId, Mac, NetAddr0) end) of
|
case mnesia:transaction(fun() -> alloc_ip0(NetworkId, Ips, ClientId, Mac, NetAddr0) end) of
|
||||||
{'atomic', Res} ->
|
{'atomic', Res} ->
|
||||||
{ok, Res};
|
{ok, Res};
|
||||||
@ -120,7 +120,7 @@ alloc_ip0(NetworkId, Ips, ClientId, Mac, NetAddr0) ->
|
|||||||
%%% helper functions
|
%%% helper functions
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
|
||||||
debug(NetworkId) when is_integer(NetworkId) ->
|
debug(NetworkId) when is_binary(NetworkId) ->
|
||||||
Tab = get_table_name(NetworkId),
|
Tab = get_table_name(NetworkId),
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
Q = qlc:q([E || E <- mnesia:table(Tab)]),
|
Q = qlc:q([E || E <- mnesia:table(Tab)]),
|
||||||
|
|||||||
@ -11,7 +11,6 @@
|
|||||||
ranch,
|
ranch,
|
||||||
poolboy,
|
poolboy,
|
||||||
mysql,
|
mysql,
|
||||||
esockd,
|
|
||||||
jiffy,
|
jiffy,
|
||||||
hackney,
|
hackney,
|
||||||
gpb,
|
gpb,
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
-export([get_all_networks/0, get_network/1]).
|
-export([get_all_networks/0, get_network/1]).
|
||||||
-export([auth_token/3, node_online/3, node_offline/2, flow_report/5, network_forward_report/2]).
|
-export([auth_token/3, node_online/3, node_offline/2, flow_report/5, network_forward_report/2]).
|
||||||
|
|
||||||
-spec get_all_networks() -> {ok, [NetworkId :: integer()]} | {error, Reason :: any()}.
|
-spec get_all_networks() -> {ok, [NetworkId :: binary()]} | {error, Reason :: any()}.
|
||||||
get_all_networks() ->
|
get_all_networks() ->
|
||||||
case catch do_get("get_all_networks", []) of
|
case catch do_get("get_all_networks", []) of
|
||||||
{ok, Resp} ->
|
{ok, Resp} ->
|
||||||
@ -31,9 +31,9 @@ get_all_networks() ->
|
|||||||
Error
|
Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec get_network(Id :: integer()) -> {ok, Network :: map()} | {error, Reason :: any()}.
|
-spec get_network(Id :: binary()) -> {ok, Network :: map()} | {error, Reason :: any()}.
|
||||||
get_network(Id) when is_integer(Id) ->
|
get_network(Id) when is_binary(Id) ->
|
||||||
case catch do_get("get_network", [{<<"id">>, integer_to_binary(Id)}]) of
|
case catch do_get("get_network", [{<<"id">>, Id}]) of
|
||||||
{ok, Resp} ->
|
{ok, Resp} ->
|
||||||
case catch jiffy:decode(Resp, [return_maps]) of
|
case catch jiffy:decode(Resp, [return_maps]) of
|
||||||
#{<<"result">> := Network} ->
|
#{<<"result">> := Network} ->
|
||||||
@ -61,8 +61,8 @@ auth_token(ClientId, Token, Version) when is_binary(ClientId), is_binary(Token),
|
|||||||
Error
|
Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec node_online(ClientId :: binary(), NetworkId :: integer(), IpAddr :: binary()) -> {ok, Resp :: map()} | {error, Reason :: any()}.
|
-spec node_online(ClientId :: binary(), NetworkId :: binary(), IpAddr :: binary()) -> {ok, Resp :: map()} | {error, Reason :: any()}.
|
||||||
node_online(ClientId, NetworkId, IpAddr) when is_binary(ClientId), is_integer(NetworkId), is_binary(IpAddr) ->
|
node_online(ClientId, NetworkId, IpAddr) when is_binary(ClientId), is_binary(NetworkId), is_binary(IpAddr) ->
|
||||||
case catch do_post("set_node_status", #{<<"client_id">> => ClientId, <<"network_id">> => NetworkId, <<"ip_addr">> => IpAddr, <<"status">> => 1}) of
|
case catch do_post("set_node_status", #{<<"client_id">> => ClientId, <<"network_id">> => NetworkId, <<"ip_addr">> => IpAddr, <<"status">> => 1}) of
|
||||||
{ok, Resp} ->
|
{ok, Resp} ->
|
||||||
{ok, catch jiffy:decode(Resp, [return_maps])};
|
{ok, catch jiffy:decode(Resp, [return_maps])};
|
||||||
@ -70,8 +70,8 @@ node_online(ClientId, NetworkId, IpAddr) when is_binary(ClientId), is_integer(Ne
|
|||||||
Error
|
Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec node_offline(ClientId :: binary(), NetworkId :: integer()) -> {ok, Resp :: map()} | {error, Reason :: any()}.
|
-spec node_offline(ClientId :: binary(), NetworkId :: binary()) -> {ok, Resp :: map()} | {error, Reason :: any()}.
|
||||||
node_offline(ClientId, NetworkId) when is_binary(ClientId), is_integer(NetworkId) ->
|
node_offline(ClientId, NetworkId) when is_binary(ClientId), is_binary(NetworkId) ->
|
||||||
case catch do_post("set_node_status", #{<<"client_id">> => ClientId, <<"network_id">> => NetworkId, <<"status">> => 0}) of
|
case catch do_post("set_node_status", #{<<"client_id">> => ClientId, <<"network_id">> => NetworkId, <<"status">> => 0}) of
|
||||||
{ok, Resp} ->
|
{ok, Resp} ->
|
||||||
{ok, catch jiffy:decode(Resp, [return_maps])};
|
{ok, catch jiffy:decode(Resp, [return_maps])};
|
||||||
@ -79,10 +79,10 @@ node_offline(ClientId, NetworkId) when is_binary(ClientId), is_integer(NetworkId
|
|||||||
Error
|
Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec flow_report(ClientId :: binary(), NetworkId :: integer(), ForwardNum :: integer(), P2PNum :: integer(), InboundNum :: integer()) ->
|
-spec flow_report(ClientId :: binary(), NetworkId :: binary(), ForwardNum :: integer(), P2PNum :: integer(), InboundNum :: integer()) ->
|
||||||
{ok, Resp :: map()} | {error, Reason :: any()}.
|
{ok, Resp :: map()} | {error, Reason :: any()}.
|
||||||
flow_report(ClientId, NetworkId, ForwardNum, P2PNum, InboundNum)
|
flow_report(ClientId, NetworkId, ForwardNum, P2PNum, InboundNum)
|
||||||
when is_binary(ClientId), is_integer(NetworkId), is_integer(ForwardNum), is_integer(P2PNum), is_integer(InboundNum) ->
|
when is_binary(ClientId), is_binary(NetworkId), is_integer(ForwardNum), is_integer(P2PNum), is_integer(InboundNum) ->
|
||||||
Params = #{
|
Params = #{
|
||||||
<<"client_id">> => ClientId,
|
<<"client_id">> => ClientId,
|
||||||
<<"network_id">> => NetworkId,
|
<<"network_id">> => NetworkId,
|
||||||
@ -97,9 +97,9 @@ flow_report(ClientId, NetworkId, ForwardNum, P2PNum, InboundNum)
|
|||||||
Error
|
Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec network_forward_report(NetworkId :: integer(), ForwardNum :: integer()) ->
|
-spec network_forward_report(NetworkId :: binary(), ForwardNum :: integer()) ->
|
||||||
{ok, Resp :: map()} | {error, Reason :: any()}.
|
{ok, Resp :: map()} | {error, Reason :: any()}.
|
||||||
network_forward_report(NetworkId, ForwardNum) when is_integer(NetworkId), is_integer(ForwardNum) ->
|
network_forward_report(NetworkId, ForwardNum) when is_binary(NetworkId), is_integer(ForwardNum) ->
|
||||||
Params = #{
|
Params = #{
|
||||||
<<"network_id">> => NetworkId,
|
<<"network_id">> => NetworkId,
|
||||||
<<"forward_num">> => ForwardNum
|
<<"forward_num">> => ForwardNum
|
||||||
|
|||||||
@ -61,18 +61,15 @@ start_tcp_server() ->
|
|||||||
Backlog = proplists:get_value(backlog, Props, 1024),
|
Backlog = proplists:get_value(backlog, Props, 1024),
|
||||||
Port = proplists:get_value(port, Props),
|
Port = proplists:get_value(port, Props),
|
||||||
|
|
||||||
TransOpts = [
|
TransOpts = #{
|
||||||
{tcp_options, [
|
num_acceptors => Acceptors,
|
||||||
binary,
|
max_connections => MaxConnections,
|
||||||
{reuseaddr, true},
|
socket_opts => [
|
||||||
{active, false},
|
{port, Port},
|
||||||
{packet, 2},
|
|
||||||
{nodelay, false},
|
{nodelay, false},
|
||||||
{backlog, Backlog}
|
{backlog, Backlog}
|
||||||
]},
|
]
|
||||||
{acceptors, Acceptors},
|
},
|
||||||
{max_connections, MaxConnections}
|
{ok, _} = ranch:start_listener('sdlan/tcp_server', ranch_tcp, TransOpts, sdlan_channel, []),
|
||||||
],
|
|
||||||
{ok, _} = esockd:open('sdlan/tcp_server', Port, TransOpts, {sdlan_channel, start_link, []}),
|
|
||||||
|
|
||||||
lager:debug("[sdlan_app] the tcp server start at: ~p", [Port]).
|
lager:debug("[sdlan_app] the tcp server start at: ~p", [Port]).
|
||||||
@ -35,7 +35,7 @@
|
|||||||
-define(UPGRADE_FORCE, 2).
|
-define(UPGRADE_FORCE, 2).
|
||||||
|
|
||||||
%% API
|
%% API
|
||||||
-export([start_link/2]).
|
-export([start_link/4]).
|
||||||
-export([publish_command/4, send_event/3, stop/2, move_network/3]).
|
-export([publish_command/4, send_event/3, stop/2, move_network/3]).
|
||||||
|
|
||||||
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
|
||||||
@ -97,19 +97,15 @@ stop(Pid, Reason) when is_pid(Pid) ->
|
|||||||
%% esockd callback
|
%% esockd callback
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
start_link(Transport, Sock) ->
|
start_link(Ref, _Socket, Transport, Opts) ->
|
||||||
{ok, proc_lib:spawn_link(?MODULE, init, [[Transport, Sock]])}.
|
{ok, proc_lib:spawn_link(?MODULE, init, [[Ref, Transport, Opts]])}.
|
||||||
|
|
||||||
init([Transport, Sock]) ->
|
init([Ref, Transport, _Opts = []]) ->
|
||||||
lager:debug("[sdlan_channel] get a new connection: ~p", [Sock]),
|
{ok, Socket} = ranch:handshake(Ref),
|
||||||
case Transport:wait(Sock) of
|
lager:debug("[sdlan_channel] get a new connection: ~p", [Socket]),
|
||||||
{ok, NewSock} ->
|
Transport:setopts(Socket, [{active, true}, {packet, 2}]),
|
||||||
Transport:setopts(Sock, [{active, true}]),
|
erlang:start_timer(?PING_TICKER, self(), ping_ticker),
|
||||||
erlang:start_timer(?PING_TICKER, self(), ping_ticker),
|
gen_server:enter_loop(?MODULE, [], #state{transport = Transport, socket = Socket}).
|
||||||
gen_server:enter_loop(?MODULE, [], #state{transport = Transport, socket = NewSock});
|
|
||||||
{error, Reason} ->
|
|
||||||
{stop, Reason}
|
|
||||||
end.
|
|
||||||
|
|
||||||
handle_call(_Request, _From, State) ->
|
handle_call(_Request, _From, State) ->
|
||||||
{reply, ok, State}.
|
{reply, ok, State}.
|
||||||
|
|||||||
@ -46,7 +46,7 @@
|
|||||||
}).
|
}).
|
||||||
|
|
||||||
-record(state, {
|
-record(state, {
|
||||||
network_id :: integer(),
|
network_id :: binary(),
|
||||||
name :: binary(),
|
name :: binary(),
|
||||||
ipaddr :: binary(),
|
ipaddr :: binary(),
|
||||||
mask_len :: integer(),
|
mask_len :: integer(),
|
||||||
@ -77,13 +77,13 @@
|
|||||||
test_event(Pid) ->
|
test_event(Pid) ->
|
||||||
gen_server:cast(Pid, test_event).
|
gen_server:cast(Pid, test_event).
|
||||||
|
|
||||||
-spec get_pid(Id :: integer()) -> undefined | pid().
|
-spec get_pid(Id :: binary()) -> undefined | pid().
|
||||||
get_pid(Id) when is_integer(Id) ->
|
get_pid(Id) when is_binary(Id) ->
|
||||||
whereis(get_name(Id)).
|
whereis(get_name(Id)).
|
||||||
|
|
||||||
-spec get_name(Id :: integer()) -> atom().
|
-spec get_name(Id :: binary()) -> atom().
|
||||||
get_name(Id) when is_integer(Id) ->
|
get_name(Id) when is_binary(Id) ->
|
||||||
list_to_atom("sdlan_network:" ++ integer_to_list(Id)).
|
list_to_atom("sdlan_network:" ++ binary_to_list(Id)).
|
||||||
|
|
||||||
-spec reload(Pid :: pid()) -> ok | {error, Reason :: any()}.
|
-spec reload(Pid :: pid()) -> ok | {error, Reason :: any()}.
|
||||||
reload(Pid) when is_pid(Pid) ->
|
reload(Pid) when is_pid(Pid) ->
|
||||||
@ -94,7 +94,7 @@ reload(Pid) when is_pid(Pid) ->
|
|||||||
assign_ip_addr(Pid, ChannelPid, ClientId, Mac, NetAddr) when is_pid(Pid), is_pid(ChannelPid), is_binary(ClientId), is_binary(Mac), is_integer(NetAddr) ->
|
assign_ip_addr(Pid, ChannelPid, ClientId, Mac, NetAddr) when is_pid(Pid), is_pid(ChannelPid), is_binary(ClientId), is_binary(Mac), is_integer(NetAddr) ->
|
||||||
gen_server:call(Pid, {assign_ip_addr, ChannelPid, ClientId, Mac, NetAddr}).
|
gen_server:call(Pid, {assign_ip_addr, ChannelPid, ClientId, Mac, NetAddr}).
|
||||||
|
|
||||||
-spec get_network_id(Pid :: pid()) -> {ok, NetworkId :: integer()}.
|
-spec get_network_id(Pid :: pid()) -> {ok, NetworkId :: binary()}.
|
||||||
get_network_id(Pid) when is_pid(Pid) ->
|
get_network_id(Pid) when is_pid(Pid) ->
|
||||||
gen_server:call(Pid, get_network_id).
|
gen_server:call(Pid, get_network_id).
|
||||||
|
|
||||||
@ -140,9 +140,9 @@ get_used_map(undefined) ->
|
|||||||
#{}.
|
#{}.
|
||||||
|
|
||||||
%% @doc Spawns the server and registers the local name (unique)
|
%% @doc Spawns the server and registers the local name (unique)
|
||||||
-spec(start_link(Name :: atom(), Id :: integer()) ->
|
-spec(start_link(Name :: atom(), Id :: binary()) ->
|
||||||
{ok, Pid :: pid()} | ignore | {error, Reason :: term()}).
|
{ok, Pid :: pid()} | ignore | {error, Reason :: term()}).
|
||||||
start_link(Name, Id) when is_atom(Name), is_integer(Id) ->
|
start_link(Name, Id) when is_atom(Name), is_binary(Id) ->
|
||||||
gen_server:start_link({local, Name}, ?MODULE, [Id], []).
|
gen_server:start_link({local, Name}, ?MODULE, [Id], []).
|
||||||
|
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
@ -154,7 +154,7 @@ start_link(Name, Id) when is_atom(Name), is_integer(Id) ->
|
|||||||
-spec(init(Args :: term()) ->
|
-spec(init(Args :: term()) ->
|
||||||
{ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} |
|
{ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} |
|
||||||
{stop, Reason :: term()} | ignore).
|
{stop, Reason :: term()} | ignore).
|
||||||
init([Id]) when is_integer(Id) ->
|
init([Id]) ->
|
||||||
erlang:process_flag(trap_exit, true),
|
erlang:process_flag(trap_exit, true),
|
||||||
case sdlan_api:get_network(Id) of
|
case sdlan_api:get_network(Id) of
|
||||||
{ok, #{<<"ipaddr">> := Null}} when Null == <<"null">>; Null == <<"NULL">> ->
|
{ok, #{<<"ipaddr">> := Null}} when Null == <<"null">>; Null == <<"NULL">> ->
|
||||||
|
|||||||
@ -51,8 +51,8 @@ init([]) ->
|
|||||||
%%% Internal functions
|
%%% Internal functions
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
|
||||||
-spec ensured_network_started(Id :: integer()) -> {ok, Pid :: pid()} | {error, Reason :: any()}.
|
-spec ensured_network_started(Id :: binary()) -> {ok, Pid :: pid()} | {error, Reason :: any()}.
|
||||||
ensured_network_started(Id) when is_integer(Id) ->
|
ensured_network_started(Id) when is_binary(Id) ->
|
||||||
case sdlan_network:get_pid(Id) of
|
case sdlan_network:get_pid(Id) of
|
||||||
undefined ->
|
undefined ->
|
||||||
case supervisor:start_child(?MODULE, child_spec(Id)) of
|
case supervisor:start_child(?MODULE, child_spec(Id)) of
|
||||||
@ -67,8 +67,8 @@ ensured_network_started(Id) when is_integer(Id) ->
|
|||||||
{ok, Pid}
|
{ok, Pid}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec start_network(Id :: integer()) -> {ok, Pid :: pid()} | {error, Reason :: any()}.
|
-spec start_network(Id :: binary()) -> {ok, Pid :: pid()} | {error, Reason :: any()}.
|
||||||
start_network(Id) when is_integer(Id) ->
|
start_network(Id) when is_binary(Id) ->
|
||||||
case supervisor:start_child(?MODULE, child_spec(Id)) of
|
case supervisor:start_child(?MODULE, child_spec(Id)) of
|
||||||
{ok, Pid} when is_pid(Pid) ->
|
{ok, Pid} when is_pid(Pid) ->
|
||||||
{ok, Pid};
|
{ok, Pid};
|
||||||
@ -88,8 +88,8 @@ reallocate_bind_width() ->
|
|||||||
ChildPids = lists:map(fun({_Id, ChildPid, _Type, _Modules}) -> ChildPid end, supervisor:which_children(?MODULE)),
|
ChildPids = lists:map(fun({_Id, ChildPid, _Type, _Modules}) -> ChildPid end, supervisor:which_children(?MODULE)),
|
||||||
set_network_bind(length(ChildPids)).
|
set_network_bind(length(ChildPids)).
|
||||||
|
|
||||||
-spec delete_network(NetworkId :: integer()) -> ok | {error, Reason :: any()}.
|
-spec delete_network(NetworkId :: binary()) -> ok | {error, Reason :: any()}.
|
||||||
delete_network(NetworkId) when is_integer(NetworkId) ->
|
delete_network(NetworkId) when is_binary(NetworkId) ->
|
||||||
ChildId = sdlan_network:get_name(NetworkId),
|
ChildId = sdlan_network:get_name(NetworkId),
|
||||||
case supervisor:terminate_child(?MODULE, ChildId) of
|
case supervisor:terminate_child(?MODULE, ChildId) of
|
||||||
ok ->
|
ok ->
|
||||||
@ -98,8 +98,8 @@ delete_network(NetworkId) when is_integer(NetworkId) ->
|
|||||||
Error
|
Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec child_spec(Id :: integer()) -> map().
|
-spec child_spec(Id :: binary()) -> map().
|
||||||
child_spec(Id) when is_integer(Id) ->
|
child_spec(Id) when is_binary(Id) ->
|
||||||
Name = sdlan_network:get_name(Id),
|
Name = sdlan_network:get_name(Id),
|
||||||
#{
|
#{
|
||||||
id => Name,
|
id => Name,
|
||||||
|
|||||||
@ -218,8 +218,9 @@ encode_msg_sdl_dev_addr(#sdl_dev_addr{network_id = F1, mac = F2, net_addr = F3,
|
|||||||
true ->
|
true ->
|
||||||
begin
|
begin
|
||||||
TrF1 = id(F1, TrUserData),
|
TrF1 = id(F1, TrUserData),
|
||||||
if TrF1 =:= 0 -> Bin;
|
case is_empty_string(TrF1) of
|
||||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
true -> Bin;
|
||||||
|
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -606,8 +607,9 @@ encode_msg_sdl_stun_request(#sdl_stun_request{cookie = F1, client_id = F2, netwo
|
|||||||
true ->
|
true ->
|
||||||
begin
|
begin
|
||||||
TrF3 = id(F3, TrUserData),
|
TrF3 = id(F3, TrUserData),
|
||||||
if TrF3 =:= 0 -> B2;
|
case is_empty_string(TrF3) of
|
||||||
true -> e_varint(TrF3, <<B2/binary, 24>>, TrUserData)
|
true -> B2;
|
||||||
|
false -> e_type_string(TrF3, <<B2/binary, 26>>, TrUserData)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -665,8 +667,9 @@ encode_msg_sdl_data(#sdl_data{network_id = F1, src_mac = F2, dst_mac = F3, is_p2
|
|||||||
true ->
|
true ->
|
||||||
begin
|
begin
|
||||||
TrF1 = id(F1, TrUserData),
|
TrF1 = id(F1, TrUserData),
|
||||||
if TrF1 =:= 0 -> Bin;
|
case is_empty_string(TrF1) of
|
||||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
true -> Bin;
|
||||||
|
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -727,8 +730,9 @@ encode_msg_sdl_register(#sdl_register{network_id = F1, src_mac = F2, dst_mac = F
|
|||||||
true ->
|
true ->
|
||||||
begin
|
begin
|
||||||
TrF1 = id(F1, TrUserData),
|
TrF1 = id(F1, TrUserData),
|
||||||
if TrF1 =:= 0 -> Bin;
|
case is_empty_string(TrF1) of
|
||||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
true -> Bin;
|
||||||
|
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -761,8 +765,9 @@ encode_msg_sdl_register_ack(#sdl_register_ack{network_id = F1, src_mac = F2, dst
|
|||||||
true ->
|
true ->
|
||||||
begin
|
begin
|
||||||
TrF1 = id(F1, TrUserData),
|
TrF1 = id(F1, TrUserData),
|
||||||
if TrF1 =:= 0 -> Bin;
|
case is_empty_string(TrF1) of
|
||||||
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
true -> Bin;
|
||||||
|
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -1149,9 +1154,9 @@ skip_32_sdl_v6_info(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) ->
|
|||||||
|
|
||||||
skip_64_sdl_v6_info(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_v6_info(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
skip_64_sdl_v6_info(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_v6_info(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
decode_msg_sdl_dev_addr(Bin, TrUserData) -> dfp_read_field_def_sdl_dev_addr(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData).
|
decode_msg_sdl_dev_addr(Bin, TrUserData) -> dfp_read_field_def_sdl_dev_addr(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_sdl_dev_addr(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
dfp_read_field_def_sdl_dev_addr(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
dfp_read_field_def_sdl_dev_addr(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
dfp_read_field_def_sdl_dev_addr(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
dfp_read_field_def_sdl_dev_addr(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_net_addr(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
dfp_read_field_def_sdl_dev_addr(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_net_addr(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
dfp_read_field_def_sdl_dev_addr(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_net_bit_len(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
dfp_read_field_def_sdl_dev_addr(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_dev_addr_net_bit_len(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
@ -1162,7 +1167,7 @@ dg_read_field_def_sdl_dev_addr(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2,
|
|||||||
dg_read_field_def_sdl_dev_addr(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) ->
|
dg_read_field_def_sdl_dev_addr(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) ->
|
||||||
Key = X bsl N + Acc,
|
Key = X bsl N + Acc,
|
||||||
case Key of
|
case Key of
|
||||||
8 -> d_field_sdl_dev_addr_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
10 -> d_field_sdl_dev_addr_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
18 -> d_field_sdl_dev_addr_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
18 -> d_field_sdl_dev_addr_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
24 -> d_field_sdl_dev_addr_net_addr(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
24 -> d_field_sdl_dev_addr_net_addr(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
32 -> d_field_sdl_dev_addr_net_bit_len(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
32 -> d_field_sdl_dev_addr_net_bit_len(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
@ -1179,7 +1184,7 @@ dg_read_field_def_sdl_dev_addr(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl
|
|||||||
|
|
||||||
d_field_sdl_dev_addr_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_dev_addr_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
d_field_sdl_dev_addr_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_dev_addr_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
d_field_sdl_dev_addr_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) ->
|
d_field_sdl_dev_addr_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) ->
|
||||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_sdl_dev_addr(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData).
|
dfp_read_field_def_sdl_dev_addr(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData).
|
||||||
|
|
||||||
d_field_sdl_dev_addr_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_dev_addr_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
d_field_sdl_dev_addr_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_dev_addr_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
|
||||||
@ -1952,11 +1957,11 @@ skip_32_sdl_flows(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData
|
|||||||
skip_64_sdl_flows(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_flows(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
skip_64_sdl_flows(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_flows(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||||
|
|
||||||
decode_msg_sdl_stun_request(Bin, TrUserData) ->
|
decode_msg_sdl_stun_request(Bin, TrUserData) ->
|
||||||
dfp_read_field_def_sdl_stun_request(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(undefined, TrUserData), TrUserData).
|
dfp_read_field_def_sdl_stun_request(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(undefined, TrUserData), TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_sdl_stun_request(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_cookie(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
dfp_read_field_def_sdl_stun_request(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_cookie(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
dfp_read_field_def_sdl_stun_request(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_client_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
dfp_read_field_def_sdl_stun_request(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_client_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
dfp_read_field_def_sdl_stun_request(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
dfp_read_field_def_sdl_stun_request(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
dfp_read_field_def_sdl_stun_request(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
dfp_read_field_def_sdl_stun_request(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
dfp_read_field_def_sdl_stun_request(<<40, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
dfp_read_field_def_sdl_stun_request(<<40, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
dfp_read_field_def_sdl_stun_request(<<48, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_nat_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
dfp_read_field_def_sdl_stun_request(<<48, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> d_field_sdl_stun_request_nat_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
@ -1971,7 +1976,7 @@ dg_read_field_def_sdl_stun_request(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F
|
|||||||
case Key of
|
case Key of
|
||||||
8 -> d_field_sdl_stun_request_cookie(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
8 -> d_field_sdl_stun_request_cookie(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
18 -> d_field_sdl_stun_request_client_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
18 -> d_field_sdl_stun_request_client_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
24 -> d_field_sdl_stun_request_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
26 -> d_field_sdl_stun_request_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
34 -> d_field_sdl_stun_request_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
34 -> d_field_sdl_stun_request_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
40 -> d_field_sdl_stun_request_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
40 -> d_field_sdl_stun_request_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
48 -> d_field_sdl_stun_request_nat_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
48 -> d_field_sdl_stun_request_nat_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
@ -2002,7 +2007,7 @@ d_field_sdl_stun_request_client_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _
|
|||||||
d_field_sdl_stun_request_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) when N < 57 ->
|
d_field_sdl_stun_request_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) when N < 57 ->
|
||||||
d_field_sdl_stun_request_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
d_field_sdl_stun_request_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
d_field_sdl_stun_request_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, F@_7, TrUserData) ->
|
d_field_sdl_stun_request_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, F@_7, TrUserData) ->
|
||||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_sdl_stun_request(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, F@_7, TrUserData).
|
dfp_read_field_def_sdl_stun_request(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, F@_7, TrUserData).
|
||||||
|
|
||||||
d_field_sdl_stun_request_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) when N < 57 -> d_field_sdl_stun_request_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
d_field_sdl_stun_request_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) when N < 57 -> d_field_sdl_stun_request_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData);
|
||||||
@ -2102,9 +2107,9 @@ skip_32_sdl_stun_reply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> df
|
|||||||
|
|
||||||
skip_64_sdl_stun_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, F@_1, TrUserData).
|
skip_64_sdl_stun_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||||
|
|
||||||
decode_msg_sdl_data(Bin, TrUserData) -> dfp_read_field_def_sdl_data(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(false, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
decode_msg_sdl_data(Bin, TrUserData) -> dfp_read_field_def_sdl_data(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(false, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_sdl_data(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
dfp_read_field_def_sdl_data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
dfp_read_field_def_sdl_data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_src_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
dfp_read_field_def_sdl_data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_src_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
dfp_read_field_def_sdl_data(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
dfp_read_field_def_sdl_data(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
dfp_read_field_def_sdl_data(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_is_p2p(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
dfp_read_field_def_sdl_data(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_sdl_data_is_p2p(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
@ -2117,7 +2122,7 @@ dg_read_field_def_sdl_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_
|
|||||||
dg_read_field_def_sdl_data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) ->
|
dg_read_field_def_sdl_data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) ->
|
||||||
Key = X bsl N + Acc,
|
Key = X bsl N + Acc,
|
||||||
case Key of
|
case Key of
|
||||||
8 -> d_field_sdl_data_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
10 -> d_field_sdl_data_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
18 -> d_field_sdl_data_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
18 -> d_field_sdl_data_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
26 -> d_field_sdl_data_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
26 -> d_field_sdl_data_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
32 -> d_field_sdl_data_is_p2p(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
32 -> d_field_sdl_data_is_p2p(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
@ -2136,7 +2141,7 @@ dg_read_field_def_sdl_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _)
|
|||||||
|
|
||||||
d_field_sdl_data_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_sdl_data_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
d_field_sdl_data_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_sdl_data_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
d_field_sdl_data_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) ->
|
d_field_sdl_data_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) ->
|
||||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_sdl_data(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData).
|
dfp_read_field_def_sdl_data(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData).
|
||||||
|
|
||||||
d_field_sdl_data_src_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_sdl_data_src_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
d_field_sdl_data_src_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_sdl_data_src_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData);
|
||||||
@ -2181,9 +2186,9 @@ skip_32_sdl_data(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5,
|
|||||||
|
|
||||||
skip_64_sdl_data(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_sdl_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData).
|
skip_64_sdl_data(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_sdl_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData).
|
||||||
|
|
||||||
decode_msg_sdl_register(Bin, TrUserData) -> dfp_read_field_def_sdl_register(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
|
decode_msg_sdl_register(Bin, TrUserData) -> dfp_read_field_def_sdl_register(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_sdl_register(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
dfp_read_field_def_sdl_register(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
dfp_read_field_def_sdl_register(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_src_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
dfp_read_field_def_sdl_register(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_src_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
dfp_read_field_def_sdl_register(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
dfp_read_field_def_sdl_register(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
dfp_read_field_def_sdl_register(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_register{network_id = F@_1, src_mac = F@_2, dst_mac = F@_3};
|
dfp_read_field_def_sdl_register(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_register{network_id = F@_1, src_mac = F@_2, dst_mac = F@_3};
|
||||||
@ -2193,7 +2198,7 @@ dg_read_field_def_sdl_register(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2,
|
|||||||
dg_read_field_def_sdl_register(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
dg_read_field_def_sdl_register(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
||||||
Key = X bsl N + Acc,
|
Key = X bsl N + Acc,
|
||||||
case Key of
|
case Key of
|
||||||
8 -> d_field_sdl_register_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
10 -> d_field_sdl_register_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||||
18 -> d_field_sdl_register_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
18 -> d_field_sdl_register_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||||
26 -> d_field_sdl_register_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
26 -> d_field_sdl_register_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||||
_ ->
|
_ ->
|
||||||
@ -2209,7 +2214,7 @@ dg_read_field_def_sdl_register(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_regis
|
|||||||
|
|
||||||
d_field_sdl_register_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
d_field_sdl_register_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
d_field_sdl_register_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
d_field_sdl_register_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
||||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_sdl_register(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
dfp_read_field_def_sdl_register(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
||||||
|
|
||||||
d_field_sdl_register_src_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_src_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
d_field_sdl_register_src_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_src_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
@ -2239,9 +2244,9 @@ skip_32_sdl_register(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserD
|
|||||||
|
|
||||||
skip_64_sdl_register(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_register(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
skip_64_sdl_register(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_register(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
||||||
|
|
||||||
decode_msg_sdl_register_ack(Bin, TrUserData) -> dfp_read_field_def_sdl_register_ack(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
|
decode_msg_sdl_register_ack(Bin, TrUserData) -> dfp_read_field_def_sdl_register_ack(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_sdl_register_ack(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_ack_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
dfp_read_field_def_sdl_register_ack(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_ack_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
dfp_read_field_def_sdl_register_ack(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_ack_src_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
dfp_read_field_def_sdl_register_ack(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_ack_src_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
dfp_read_field_def_sdl_register_ack(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_ack_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
dfp_read_field_def_sdl_register_ack(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_register_ack_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
dfp_read_field_def_sdl_register_ack(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_register_ack{network_id = F@_1, src_mac = F@_2, dst_mac = F@_3};
|
dfp_read_field_def_sdl_register_ack(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_register_ack{network_id = F@_1, src_mac = F@_2, dst_mac = F@_3};
|
||||||
@ -2251,7 +2256,7 @@ dg_read_field_def_sdl_register_ack(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F
|
|||||||
dg_read_field_def_sdl_register_ack(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
dg_read_field_def_sdl_register_ack(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
||||||
Key = X bsl N + Acc,
|
Key = X bsl N + Acc,
|
||||||
case Key of
|
case Key of
|
||||||
8 -> d_field_sdl_register_ack_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
10 -> d_field_sdl_register_ack_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||||
18 -> d_field_sdl_register_ack_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
18 -> d_field_sdl_register_ack_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||||
26 -> d_field_sdl_register_ack_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
26 -> d_field_sdl_register_ack_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
||||||
_ ->
|
_ ->
|
||||||
@ -2267,7 +2272,7 @@ dg_read_field_def_sdl_register_ack(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_r
|
|||||||
|
|
||||||
d_field_sdl_register_ack_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_ack_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
d_field_sdl_register_ack_network_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_ack_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
d_field_sdl_register_ack_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
d_field_sdl_register_ack_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
||||||
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_sdl_register_ack(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
dfp_read_field_def_sdl_register_ack(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
||||||
|
|
||||||
d_field_sdl_register_ack_src_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_ack_src_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
d_field_sdl_register_ack_src_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_ack_src_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
||||||
@ -2918,7 +2923,7 @@ v_submsg_sdl_dev_addr(Msg, Path, TrUserData) -> v_msg_sdl_dev_addr(Msg, Path, Tr
|
|||||||
-dialyzer({nowarn_function,v_msg_sdl_dev_addr/3}).
|
-dialyzer({nowarn_function,v_msg_sdl_dev_addr/3}).
|
||||||
v_msg_sdl_dev_addr(#sdl_dev_addr{network_id = F1, mac = F2, net_addr = F3, net_bit_len = F4}, Path, TrUserData) ->
|
v_msg_sdl_dev_addr(#sdl_dev_addr{network_id = F1, mac = F2, net_addr = F3, net_bit_len = F4}, Path, TrUserData) ->
|
||||||
if F1 == undefined -> ok;
|
if F1 == undefined -> ok;
|
||||||
true -> v_type_uint32(F1, [network_id | Path], TrUserData)
|
true -> v_type_string(F1, [network_id | Path], TrUserData)
|
||||||
end,
|
end,
|
||||||
if F2 == undefined -> ok;
|
if F2 == undefined -> ok;
|
||||||
true -> v_type_bytes(F2, [mac | Path], TrUserData)
|
true -> v_type_bytes(F2, [mac | Path], TrUserData)
|
||||||
@ -3109,7 +3114,7 @@ v_msg_sdl_stun_request(#sdl_stun_request{cookie = F1, client_id = F2, network_id
|
|||||||
true -> v_type_string(F2, [client_id | Path], TrUserData)
|
true -> v_type_string(F2, [client_id | Path], TrUserData)
|
||||||
end,
|
end,
|
||||||
if F3 == undefined -> ok;
|
if F3 == undefined -> ok;
|
||||||
true -> v_type_uint32(F3, [network_id | Path], TrUserData)
|
true -> v_type_string(F3, [network_id | Path], TrUserData)
|
||||||
end,
|
end,
|
||||||
if F4 == undefined -> ok;
|
if F4 == undefined -> ok;
|
||||||
true -> v_type_bytes(F4, [mac | Path], TrUserData)
|
true -> v_type_bytes(F4, [mac | Path], TrUserData)
|
||||||
@ -3139,7 +3144,7 @@ v_msg_sdl_stun_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_s
|
|||||||
-dialyzer({nowarn_function,v_msg_sdl_data/3}).
|
-dialyzer({nowarn_function,v_msg_sdl_data/3}).
|
||||||
v_msg_sdl_data(#sdl_data{network_id = F1, src_mac = F2, dst_mac = F3, is_p2p = F4, ttl = F5, data = F6}, Path, TrUserData) ->
|
v_msg_sdl_data(#sdl_data{network_id = F1, src_mac = F2, dst_mac = F3, is_p2p = F4, ttl = F5, data = F6}, Path, TrUserData) ->
|
||||||
if F1 == undefined -> ok;
|
if F1 == undefined -> ok;
|
||||||
true -> v_type_uint32(F1, [network_id | Path], TrUserData)
|
true -> v_type_string(F1, [network_id | Path], TrUserData)
|
||||||
end,
|
end,
|
||||||
if F2 == undefined -> ok;
|
if F2 == undefined -> ok;
|
||||||
true -> v_type_bytes(F2, [src_mac | Path], TrUserData)
|
true -> v_type_bytes(F2, [src_mac | Path], TrUserData)
|
||||||
@ -3163,7 +3168,7 @@ v_msg_sdl_data(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_data},
|
|||||||
-dialyzer({nowarn_function,v_msg_sdl_register/3}).
|
-dialyzer({nowarn_function,v_msg_sdl_register/3}).
|
||||||
v_msg_sdl_register(#sdl_register{network_id = F1, src_mac = F2, dst_mac = F3}, Path, TrUserData) ->
|
v_msg_sdl_register(#sdl_register{network_id = F1, src_mac = F2, dst_mac = F3}, Path, TrUserData) ->
|
||||||
if F1 == undefined -> ok;
|
if F1 == undefined -> ok;
|
||||||
true -> v_type_uint32(F1, [network_id | Path], TrUserData)
|
true -> v_type_string(F1, [network_id | Path], TrUserData)
|
||||||
end,
|
end,
|
||||||
if F2 == undefined -> ok;
|
if F2 == undefined -> ok;
|
||||||
true -> v_type_bytes(F2, [src_mac | Path], TrUserData)
|
true -> v_type_bytes(F2, [src_mac | Path], TrUserData)
|
||||||
@ -3178,7 +3183,7 @@ v_msg_sdl_register(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_reg
|
|||||||
-dialyzer({nowarn_function,v_msg_sdl_register_ack/3}).
|
-dialyzer({nowarn_function,v_msg_sdl_register_ack/3}).
|
||||||
v_msg_sdl_register_ack(#sdl_register_ack{network_id = F1, src_mac = F2, dst_mac = F3}, Path, TrUserData) ->
|
v_msg_sdl_register_ack(#sdl_register_ack{network_id = F1, src_mac = F2, dst_mac = F3}, Path, TrUserData) ->
|
||||||
if F1 == undefined -> ok;
|
if F1 == undefined -> ok;
|
||||||
true -> v_type_uint32(F1, [network_id | Path], TrUserData)
|
true -> v_type_string(F1, [network_id | Path], TrUserData)
|
||||||
end,
|
end,
|
||||||
if F2 == undefined -> ok;
|
if F2 == undefined -> ok;
|
||||||
true -> v_type_bytes(F2, [src_mac | Path], TrUserData)
|
true -> v_type_bytes(F2, [src_mac | Path], TrUserData)
|
||||||
@ -3291,7 +3296,7 @@ get_msg_defs() ->
|
|||||||
#field{name = nat_type, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]},
|
#field{name = nat_type, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]},
|
||||||
{{msg, sdl_v6_info}, [#field{name = port, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = v6, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}]},
|
{{msg, sdl_v6_info}, [#field{name = port, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = v6, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}]},
|
||||||
{{msg, sdl_dev_addr},
|
{{msg, sdl_dev_addr},
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = net_addr, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = net_addr, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = net_bit_len, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]},
|
#field{name = net_bit_len, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]},
|
||||||
@ -3332,25 +3337,25 @@ get_msg_defs() ->
|
|||||||
{{msg, sdl_stun_request},
|
{{msg, sdl_stun_request},
|
||||||
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = client_id, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []},
|
#field{name = client_id, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = network_id, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = network_id, fnum = 3, rnum = 4, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = mac, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = mac, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = ip, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = ip, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = nat_type, fnum = 6, rnum = 7, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = nat_type, fnum = 6, rnum = 7, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = v6_info, fnum = 7, rnum = 8, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}]},
|
#field{name = v6_info, fnum = 7, rnum = 8, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}]},
|
||||||
{{msg, sdl_stun_reply}, [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}]},
|
{{msg, sdl_stun_reply}, [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}]},
|
||||||
{{msg, sdl_data},
|
{{msg, sdl_data},
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = is_p2p, fnum = 4, rnum = 5, type = bool, occurrence = defaulty, opts = []},
|
#field{name = is_p2p, fnum = 4, rnum = 5, type = bool, occurrence = defaulty, opts = []},
|
||||||
#field{name = ttl, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = ttl, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = data, fnum = 6, rnum = 7, type = bytes, occurrence = defaulty, opts = []}]},
|
#field{name = data, fnum = 6, rnum = 7, type = bytes, occurrence = defaulty, opts = []}]},
|
||||||
{{msg, sdl_register},
|
{{msg, sdl_register},
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]},
|
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]},
|
||||||
{{msg, sdl_register_ack},
|
{{msg, sdl_register_ack},
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]},
|
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]},
|
||||||
{{msg, sdl_stun_probe}, [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = attr, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}]},
|
{{msg, sdl_stun_probe}, [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = attr, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}]},
|
||||||
@ -3433,7 +3438,7 @@ find_msg_def(sdl_v4_info) ->
|
|||||||
#field{name = nat_type, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}];
|
#field{name = nat_type, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}];
|
||||||
find_msg_def(sdl_v6_info) -> [#field{name = port, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = v6, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}];
|
find_msg_def(sdl_v6_info) -> [#field{name = port, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = v6, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}];
|
||||||
find_msg_def(sdl_dev_addr) ->
|
find_msg_def(sdl_dev_addr) ->
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = net_addr, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = net_addr, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = net_bit_len, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}];
|
#field{name = net_bit_len, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}];
|
||||||
@ -3474,25 +3479,25 @@ find_msg_def(sdl_flows) ->
|
|||||||
find_msg_def(sdl_stun_request) ->
|
find_msg_def(sdl_stun_request) ->
|
||||||
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = client_id, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []},
|
#field{name = client_id, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = network_id, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = network_id, fnum = 3, rnum = 4, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = mac, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = mac, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = ip, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = ip, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = nat_type, fnum = 6, rnum = 7, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = nat_type, fnum = 6, rnum = 7, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = v6_info, fnum = 7, rnum = 8, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}];
|
#field{name = v6_info, fnum = 7, rnum = 8, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}];
|
||||||
find_msg_def(sdl_stun_reply) -> [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}];
|
find_msg_def(sdl_stun_reply) -> [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}];
|
||||||
find_msg_def(sdl_data) ->
|
find_msg_def(sdl_data) ->
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = is_p2p, fnum = 4, rnum = 5, type = bool, occurrence = defaulty, opts = []},
|
#field{name = is_p2p, fnum = 4, rnum = 5, type = bool, occurrence = defaulty, opts = []},
|
||||||
#field{name = ttl, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
#field{name = ttl, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
|
||||||
#field{name = data, fnum = 6, rnum = 7, type = bytes, occurrence = defaulty, opts = []}];
|
#field{name = data, fnum = 6, rnum = 7, type = bytes, occurrence = defaulty, opts = []}];
|
||||||
find_msg_def(sdl_register) ->
|
find_msg_def(sdl_register) ->
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}];
|
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}];
|
||||||
find_msg_def(sdl_register_ack) ->
|
find_msg_def(sdl_register_ack) ->
|
||||||
[#field{name = network_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
|
[#field{name = network_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
|
||||||
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
#field{name = src_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
|
||||||
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}];
|
#field{name = dst_mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}];
|
||||||
find_msg_def(sdl_stun_probe) -> [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = attr, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}];
|
find_msg_def(sdl_stun_probe) -> [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = attr, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}];
|
||||||
|
|||||||
@ -15,7 +15,7 @@ message SDLV6Info {
|
|||||||
|
|
||||||
// 设备网络地址信息
|
// 设备网络地址信息
|
||||||
message SDLDevAddr {
|
message SDLDevAddr {
|
||||||
uint32 network_id = 1;
|
string network_id = 1;
|
||||||
bytes mac = 2;
|
bytes mac = 2;
|
||||||
uint32 net_addr = 3;
|
uint32 net_addr = 3;
|
||||||
uint32 net_bit_len = 4;
|
uint32 net_bit_len = 4;
|
||||||
@ -106,7 +106,7 @@ message SDLFlows {
|
|||||||
message SDLStunRequest {
|
message SDLStunRequest {
|
||||||
uint32 cookie = 1;
|
uint32 cookie = 1;
|
||||||
string client_id = 2;
|
string client_id = 2;
|
||||||
uint32 network_id = 3;
|
string network_id = 3;
|
||||||
bytes mac = 4;
|
bytes mac = 4;
|
||||||
uint32 ip = 5;
|
uint32 ip = 5;
|
||||||
uint32 nat_type = 6;
|
uint32 nat_type = 6;
|
||||||
@ -118,7 +118,7 @@ message SDLStunReply {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message SDLData {
|
message SDLData {
|
||||||
uint32 network_id = 1;
|
string network_id = 1;
|
||||||
bytes src_mac = 2;
|
bytes src_mac = 2;
|
||||||
bytes dst_mac = 3;
|
bytes dst_mac = 3;
|
||||||
bool is_p2p = 4;
|
bool is_p2p = 4;
|
||||||
@ -127,13 +127,13 @@ message SDLData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message SDLRegister {
|
message SDLRegister {
|
||||||
uint32 network_id = 1;
|
string network_id = 1;
|
||||||
bytes src_mac = 2;
|
bytes src_mac = 2;
|
||||||
bytes dst_mac = 3;
|
bytes dst_mac = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SDLRegisterAck {
|
message SDLRegisterAck {
|
||||||
uint32 network_id = 1;
|
string network_id = 1;
|
||||||
bytes src_mac = 2;
|
bytes src_mac = 2;
|
||||||
bytes dst_mac = 3;
|
bytes dst_mac = 3;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,9 +3,8 @@
|
|||||||
{poolboy, ".*", {git, "https://github.com/devinus/poolboy.git", {tag, "1.5.1"}}},
|
{poolboy, ".*", {git, "https://github.com/devinus/poolboy.git", {tag, "1.5.1"}}},
|
||||||
{hackney, ".*", {git, "https://github.com/benoitc/hackney.git", {tag, "1.16.0"}}},
|
{hackney, ".*", {git, "https://github.com/benoitc/hackney.git", {tag, "1.16.0"}}},
|
||||||
{sync, ".*", {git, "https://github.com/rustyio/sync.git", {branch, "master"}}},
|
{sync, ".*", {git, "https://github.com/rustyio/sync.git", {branch, "master"}}},
|
||||||
{esockd, ".*", {git, "https://github.com/emqx/esockd.git", {tag, "v5.7.3"}}},
|
|
||||||
{jiffy, ".*", {git, "https://github.com/davisp/jiffy.git", {tag, "1.1.1"}}},
|
{jiffy, ".*", {git, "https://github.com/davisp/jiffy.git", {tag, "1.1.1"}}},
|
||||||
{cowboy, ".*", {git, "https://github.com/ninenines/cowboy.git", {tag, "2.12.0"}}},
|
{cowboy, ".*", {git, "https://github.com/ninenines/cowboy.git", {tag, "2.14.2"}}},
|
||||||
{mysql, ".*", {git, "https://github.com/mysql-otp/mysql-otp", {tag, "1.8.0"}}},
|
{mysql, ".*", {git, "https://github.com/mysql-otp/mysql-otp", {tag, "1.8.0"}}},
|
||||||
{gpb, ".*", {git, "https://github.com/tomas-abrahamsson/gpb.git", {tag, "4.21.1"}}},
|
{gpb, ".*", {git, "https://github.com/tomas-abrahamsson/gpb.git", {tag, "4.21.1"}}},
|
||||||
{throttle, ".*", {git, "https://github.com/lambdaclass/throttle.git", {tag, "0.3.0"}}},
|
{throttle, ".*", {git, "https://github.com/lambdaclass/throttle.git", {tag, "0.3.0"}}},
|
||||||
|
|||||||
10
rebar.lock
10
rebar.lock
@ -2,16 +2,12 @@
|
|||||||
[{<<"certifi">>,{pkg,<<"certifi">>,<<"2.5.2">>},1},
|
[{<<"certifi">>,{pkg,<<"certifi">>,<<"2.5.2">>},1},
|
||||||
{<<"cowboy">>,
|
{<<"cowboy">>,
|
||||||
{git,"https://github.com/ninenines/cowboy.git",
|
{git,"https://github.com/ninenines/cowboy.git",
|
||||||
{ref,"3ea8395eb8f53a57acb5d3c00b99c70296e7cdbd"}},
|
{ref,"495e74ada88d0876d7e438d53f11af767a9cdcc4"}},
|
||||||
0},
|
0},
|
||||||
{<<"cowlib">>,
|
{<<"cowlib">>,
|
||||||
{git,"https://github.com/ninenines/cowlib",
|
{git,"https://github.com/ninenines/cowlib",
|
||||||
{ref,"1eb7f4293a652adcfe43b1835d22c58d8def839f"}},
|
{ref,"aca0ad953417b29bab2c41eeb4c37c98606c848b"}},
|
||||||
1},
|
1},
|
||||||
{<<"esockd">>,
|
|
||||||
{git,"https://github.com/emqx/esockd.git",
|
|
||||||
{ref,"d9ce4024cc42a65e9a05001997031e743442f955"}},
|
|
||||||
0},
|
|
||||||
{<<"fs">>,{pkg,<<"fs">>,<<"6.1.1">>},1},
|
{<<"fs">>,{pkg,<<"fs">>,<<"6.1.1">>},1},
|
||||||
{<<"goldrush">>,{pkg,<<"goldrush">>,<<"0.1.9">>},1},
|
{<<"goldrush">>,{pkg,<<"goldrush">>,<<"0.1.9">>},1},
|
||||||
{<<"gpb">>,
|
{<<"gpb">>,
|
||||||
@ -47,7 +43,7 @@
|
|||||||
0},
|
0},
|
||||||
{<<"ranch">>,
|
{<<"ranch">>,
|
||||||
{git,"https://github.com/ninenines/ranch",
|
{git,"https://github.com/ninenines/ranch",
|
||||||
{ref,"a692f44567034dacf5efcaa24a24183788594eb7"}},
|
{ref,"10b51304b26062e0dbfd5e74824324e9a911e269"}},
|
||||||
1},
|
1},
|
||||||
{<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.6">>},1},
|
{<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.6">>},1},
|
||||||
{<<"sync">>,
|
{<<"sync">>,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user