fix proto

This commit is contained in:
anlicheng 2026-02-13 19:12:42 +08:00
parent f69ff60703
commit 77ddabbf43
11 changed files with 374 additions and 214 deletions

View File

@ -25,6 +25,16 @@
}). }).
-endif. -endif.
-ifndef('SDL_WELCOME_PB_H').
-define('SDL_WELCOME_PB_H', true).
-record(sdl_welcome,
{version = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits
max_bidi_streams = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
max_packet_size = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits
heartbeat_sec = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits
}).
-endif.
-ifndef('SDL_EMPTY_PB_H'). -ifndef('SDL_EMPTY_PB_H').
-define('SDL_EMPTY_PB_H', true). -define('SDL_EMPTY_PB_H', true).
-record(sdl_empty, -record(sdl_empty,
@ -35,15 +45,14 @@
-ifndef('SDL_REGISTER_SUPER_PB_H'). -ifndef('SDL_REGISTER_SUPER_PB_H').
-define('SDL_REGISTER_SUPER_PB_H', true). -define('SDL_REGISTER_SUPER_PB_H', true).
-record(sdl_register_super, -record(sdl_register_super,
{version = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits {client_id = <<>> :: unicode:chardata() | undefined, % = 1, optional
client_id = <<>> :: unicode:chardata() | undefined, % = 2, optional network_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits
network_id = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits mac = <<>> :: iodata() | undefined, % = 3, optional
mac = <<>> :: iodata() | undefined, % = 4, optional ip = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits
ip = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits mask_len = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits
mask_len = 0 :: non_neg_integer() | undefined, % = 6, optional, 32 bits hostname = <<>> :: unicode:chardata() | undefined, % = 6, optional
hostname = <<>> :: unicode:chardata() | undefined, % = 7, optional pub_key = <<>> :: unicode:chardata() | undefined, % = 7, optional
pub_key = <<>> :: unicode:chardata() | undefined, % = 8, optional access_token = <<>> :: unicode:chardata() | undefined % = 8, optional
access_token = <<>> :: unicode:chardata() | undefined % = 9, optional
}). }).
-endif. -endif.

View File

@ -8,9 +8,6 @@
%%%------------------------------------------------------------------- %%%-------------------------------------------------------------------
-module(node_handler). -module(node_handler).
-author("anlicheng"). -author("anlicheng").
-include("sdlan.hrl").
-include("sdlan_pb.hrl").
-include("sdlan_tables.hrl").
%% API %% API
-export([handle_request/4]). -export([handle_request/4]).

View File

@ -13,8 +13,6 @@
-behaviour(gen_statem). -behaviour(gen_statem).
-define(MAX_FRAME_LEN, 16384).
%% %%
-define(PING_TICKER, 15000). -define(PING_TICKER, 15000).
@ -26,7 +24,7 @@
-define(NAK_INTERNAL_FAULT, 5). -define(NAK_INTERNAL_FAULT, 5).
%% API %% API
-export([start_link/1]). -export([start_link/2]).
-export([send_event/3, stop/2]). -export([send_event/3, stop/2]).
%% gen_statem callbacks %% gen_statem callbacks
@ -34,6 +32,11 @@
-record(state, { -record(state, {
conn :: quicer:connection_handle(), conn :: quicer:connection_handle(),
%%
max_packet_size = 16384,
%%
heartbeat_interval = 5000,
stream :: undefined | quicer:stream_handle(), stream :: undefined | quicer:stream_handle(),
%% framing的解析 %% framing的解析
buf = <<>>, buf = <<>>,
@ -64,8 +67,8 @@ stop(Pid, Reason) when is_pid(Pid) ->
%% @doc Creates a gen_statem process which calls Module:init/1 to %% @doc Creates a gen_statem process which calls Module:init/1 to
%% initialize. To ensure a synchronized start-up procedure, this %% initialize. To ensure a synchronized start-up procedure, this
%% function does not return until Module:init/1 has returned. %% function does not return until Module:init/1 has returned.
start_link(Conn) -> start_link(Conn, Limits) when is_list(Limits) ->
gen_statem:start_link(?MODULE, [Conn], []). gen_statem:start_link(?MODULE, [Conn, Limits], []).
%%%=================================================================== %%%===================================================================
%%% gen_statem callbacks %%% gen_statem callbacks
@ -75,8 +78,10 @@ start_link(Conn) ->
%% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or %% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or
%% gen_statem:start_link/[3,4], this function is called by the new %% gen_statem:start_link/[3,4], this function is called by the new
%% process to initialize. %% process to initialize.
init([Conn]) -> init([Conn, Limits]) ->
{ok, initializing, #state{conn = Conn}, [{next_event, internal, do_init}]}. MaxPacketSize = proplists:get_value(max_packet_size, Limits, 16384),
HeartbeatSec = proplists:get_value(heartbeat_sec, Limits, 5),
{ok, initializing, #state{conn = Conn, max_packet_size = MaxPacketSize, heartbeat_interval = HeartbeatSec * 1000}, [{next_event, internal, do_init}]}.
%% @private %% @private
%% @doc This function is called by a gen_statem when it needs to find out %% @doc This function is called by a gen_statem when it needs to find out
@ -214,9 +219,9 @@ handle_event(info, {quic, send_shutdown_complete, Stream, _Props}, _StateName, S
{stop, connection_shutdown, State}; {stop, connection_shutdown, State};
%% quicer相关的信息, frame消息 %% quicer相关的信息, frame消息
handle_event(info, {quic, Data, Stream, _Props}, _StateName, State = #state{stream = Stream, buf = Buf}) -> handle_event(info, {quic, Data, Stream, _Props}, _StateName, State = #state{stream = Stream, buf = Buf, max_packet_size = MaxPacketSize}) ->
logger:debug("[sdlan_quic_channel] get message: ~p", [Data]), logger:debug("[sdlan_quic_channel] get message: ~p", [Data]),
case decode_frames(<<Buf/binary, Data/binary>>) of case decode_frames(<<Buf/binary, Data/binary>>, MaxPacketSize) of
{error, Reason} -> {error, Reason} ->
{stop, Reason, State}; {stop, Reason, State};
{ok, NBuf, Frames} -> {ok, NBuf, Frames} ->
@ -253,14 +258,14 @@ code_change(_OldVsn, StateName, State = #state{}, _Extra) ->
%% 2 %% 2
%% 1. %% 1.
%% 2. %% 2.
-spec decode_frames(Buf :: binary()) -> {ok, RestBin::binary(), Frames :: list()} | {error, Reason :: any()}. -spec decode_frames(Buf :: binary(), MaxPacketSize :: integer()) -> {ok, RestBin::binary(), Frames :: list()} | {error, Reason :: any()}.
decode_frames(Buf) when is_binary(Buf) -> decode_frames(Buf, MaxPacketSize) when is_binary(Buf) ->
decode_frames0(Buf, []). decode_frames0(Buf, MaxPacketSize, []).
decode_frames0(<<Len:16, _/binary>>, _Frames) when Len > ?MAX_FRAME_LEN -> decode_frames0(<<Len:16, _/binary>>, MaxPacketSize, _Frames) when Len > MaxPacketSize ->
{error, frame_too_large}; {error, frame_too_large};
decode_frames0(<<Len:16, Frame:Len/binary, Rest/binary>>, Frames) -> decode_frames0(<<Len:16, Frame:Len/binary, Rest/binary>>, MaxPacketSize, Frames) ->
decode_frames0(Rest, [Frame|Frames]); decode_frames0(Rest, MaxPacketSize, [Frame|Frames]);
decode_frames0(Rest, Frames) -> decode_frames0(Rest, _MaxPacketSize, Frames) ->
{ok, Rest, lists:reverse(Frames)}. {ok, Rest, lists:reverse(Frames)}.
-spec register_nak_reply(PacketId :: integer(), ErrorCode :: integer(), ErrorMsg :: binary()) -> binary(). -spec register_nak_reply(PacketId :: integer(), ErrorCode :: integer(), ErrorMsg :: binary()) -> binary().

View File

@ -13,7 +13,7 @@
%% API %% API
-export([start_link/0]). -export([start_link/0]).
-export([start_channel/1]). -export([start_channel/2]).
%% Supervisor callbacks %% Supervisor callbacks
-export([init/1]). -export([init/1]).
@ -60,6 +60,6 @@ init([]) ->
%%% Internal functions %%% Internal functions
%%%=================================================================== %%%===================================================================
-spec start_channel(NConn :: quicer:connection_handle()) -> supervisor:startchild_ret(). -spec start_channel(NConn :: quicer:connection_handle(), Limits :: proplists()) -> supervisor:startchild_ret().
start_channel(NConn) -> start_channel(NConn, Limits) when is_list(Limits) ->
supervisor:start_child(?MODULE, [NConn]). supervisor:start_child(?MODULE, [NConn, Limits]).

View File

@ -19,6 +19,7 @@ init() ->
{ok, Props} = application:get_env(sdlan, quic_server), {ok, Props} = application:get_env(sdlan, quic_server),
Port = proplists:get_value(port, Props), Port = proplists:get_value(port, Props),
Alpn = proplists:get_value(alpn, Props), Alpn = proplists:get_value(alpn, Props),
Limits = proplists:get_value(limits, Props),
Path = code:priv_dir(sdlan), Path = code:priv_dir(sdlan),
LOptions = #{ LOptions = #{
@ -33,31 +34,31 @@ init() ->
ListenAddr = "0.0.0.0:" ++ integer_to_list(Port), ListenAddr = "0.0.0.0:" ++ integer_to_list(Port),
case quicer:listen(ListenAddr, LOptions) of case quicer:listen(ListenAddr, LOptions) of
{ok, L} -> {ok, L} ->
loop_accept(L); loop_accept(L, Limits);
Error -> Error ->
exit(Error) exit(Error)
end. end.
loop_accept(L) -> loop_accept(L, Limits) ->
case quicer:accept(L, #{}, infinity) of case quicer:accept(L, #{}, infinity) of
{ok, Conn} -> {ok, Conn} ->
logger:debug("[sdlan_quic_server] accept a new connection: ~p", [Conn]), logger:debug("[sdlan_quic_server] accept a new connection: ~p", [Conn]),
case quicer:handshake(Conn) of case quicer:handshake(Conn) of
{ok, NConn} -> {ok, NConn} ->
logger:debug("[sdlan_quic_server] conn: ~p, handshake success", [NConn]), logger:debug("[sdlan_quic_server] conn: ~p, handshake success", [NConn]),
case sdlan_quic_channel_sup:start_channel(NConn) of case sdlan_quic_channel_sup:start_channel(NConn, Limits) of
{ok, ChannelPid} -> {ok, ChannelPid} ->
quicer:controlling_process(NConn, ChannelPid); quicer:controlling_process(NConn, ChannelPid);
Error -> Error ->
quicer:close_connection(NConn), quicer:close_connection(NConn),
logger:notice("[sdlan_quic_server] start channel get error: ~p", [Error]) logger:notice("[sdlan_quic_server] start channel get error: ~p", [Error])
end, end,
loop_accept(L); loop_accept(L, Limits);
{error, _} -> {error, _} ->
quicer:close_connection(Conn), quicer:close_connection(Conn),
loop_accept(L) loop_accept(L, Limits)
end; end;
{error, Reason} -> {error, Reason} ->
logger:debug("[sdlan_quic_server] accept failed: ~p", [Reason]), logger:debug("[sdlan_quic_server] accept failed: ~p", [Reason]),
loop_accept(L) loop_accept(L, Limits)
end. end.

View File

@ -37,7 +37,6 @@ start_http_server() ->
Dispatcher = cowboy_router:compile([ Dispatcher = cowboy_router:compile([
{'_', [ {'_', [
{"/file/[...]", file_handler, []},
{"/api/[...]", http_protocol, [api_handler]}, {"/api/[...]", http_protocol, [api_handler]},
{"/network/[...]", http_protocol, [network_handler]}, {"/network/[...]", http_protocol, [network_handler]},
{"/node/[...]", http_protocol, [node_handler]}, {"/node/[...]", http_protocol, [node_handler]},

View File

@ -18,8 +18,6 @@ test() ->
Key = <<"abcdabcdabcdabcd">>, Key = <<"abcdabcdabcdabcd">>,
X = aes_encrypt(Key, Key, <<"hello world">>), X = aes_encrypt(Key, Key, <<"hello world">>),
logger:debug("x is: ~p, raw: ~p", [X, aes_decrypt(Key, Key, X)]), logger:debug("x is: ~p, raw: ~p", [X, aes_decrypt(Key, Key, X)]),
ok. ok.
-spec rsa_pem_decode(PubKey :: binary()) -> public_key:rsa_public_key(). -spec rsa_pem_decode(PubKey :: binary()) -> public_key:rsa_public_key().

View File

@ -59,6 +59,8 @@
-type sdl_v6_info() :: #sdl_v6_info{}. -type sdl_v6_info() :: #sdl_v6_info{}.
-type sdl_welcome() :: #sdl_welcome{}.
-type sdl_empty() :: #sdl_empty{}. -type sdl_empty() :: #sdl_empty{}.
-type sdl_register_super() :: #sdl_register_super{}. -type sdl_register_super() :: #sdl_register_super{}.
@ -99,9 +101,9 @@
-type sdl_register_ack() :: #sdl_register_ack{}. -type sdl_register_ack() :: #sdl_register_ack{}.
-export_type(['sdl_v4_info'/0, 'sdl_v6_info'/0, 'sdl_empty'/0, 'sdl_register_super'/0, 'sdl_register_super_ack'/0, 'sdl_register_super_nak'/0, 'sdl_query_info'/0, 'sdl_peer_info'/0, 'sdl_arp_request'/0, 'sdl_arp_response'/0, 'sdl_policy_request'/0, 'sdl_policy_response'/0, 'sdl_nat_changed_event'/0, 'sdl_send_register_event'/0, 'sdl_network_shutdown_event'/0, 'sdl_stun_request'/0, 'sdl_stun_reply'/0, 'sdl_data'/0, 'sdl_stun_probe'/0, 'sdl_stun_probe_reply'/0, 'sdl_register'/0, 'sdl_register_ack'/0]). -export_type(['sdl_v4_info'/0, 'sdl_v6_info'/0, 'sdl_welcome'/0, 'sdl_empty'/0, 'sdl_register_super'/0, 'sdl_register_super_ack'/0, 'sdl_register_super_nak'/0, 'sdl_query_info'/0, 'sdl_peer_info'/0, 'sdl_arp_request'/0, 'sdl_arp_response'/0, 'sdl_policy_request'/0, 'sdl_policy_response'/0, 'sdl_nat_changed_event'/0, 'sdl_send_register_event'/0, 'sdl_network_shutdown_event'/0, 'sdl_stun_request'/0, 'sdl_stun_reply'/0, 'sdl_data'/0, 'sdl_stun_probe'/0, 'sdl_stun_probe_reply'/0, 'sdl_register'/0, 'sdl_register_ack'/0]).
-type '$msg_name'() :: sdl_v4_info | sdl_v6_info | sdl_empty | sdl_register_super | sdl_register_super_ack | sdl_register_super_nak | sdl_query_info | sdl_peer_info | sdl_arp_request | sdl_arp_response | sdl_policy_request | sdl_policy_response | sdl_nat_changed_event | sdl_send_register_event | sdl_network_shutdown_event | sdl_stun_request | sdl_stun_reply | sdl_data | sdl_stun_probe | sdl_stun_probe_reply | sdl_register | sdl_register_ack. -type '$msg_name'() :: sdl_v4_info | sdl_v6_info | sdl_welcome | sdl_empty | sdl_register_super | sdl_register_super_ack | sdl_register_super_nak | sdl_query_info | sdl_peer_info | sdl_arp_request | sdl_arp_response | sdl_policy_request | sdl_policy_response | sdl_nat_changed_event | sdl_send_register_event | sdl_network_shutdown_event | sdl_stun_request | sdl_stun_reply | sdl_data | sdl_stun_probe | sdl_stun_probe_reply | sdl_register | sdl_register_ack.
-type '$msg'() :: sdl_v4_info() | sdl_v6_info() | sdl_empty() | sdl_register_super() | sdl_register_super_ack() | sdl_register_super_nak() | sdl_query_info() | sdl_peer_info() | sdl_arp_request() | sdl_arp_response() | sdl_policy_request() | sdl_policy_response() | sdl_nat_changed_event() | sdl_send_register_event() | sdl_network_shutdown_event() | sdl_stun_request() | sdl_stun_reply() | sdl_data() | sdl_stun_probe() | sdl_stun_probe_reply() | sdl_register() | sdl_register_ack(). -type '$msg'() :: sdl_v4_info() | sdl_v6_info() | sdl_welcome() | sdl_empty() | sdl_register_super() | sdl_register_super_ack() | sdl_register_super_nak() | sdl_query_info() | sdl_peer_info() | sdl_arp_request() | sdl_arp_response() | sdl_policy_request() | sdl_policy_response() | sdl_nat_changed_event() | sdl_send_register_event() | sdl_network_shutdown_event() | sdl_stun_request() | sdl_stun_reply() | sdl_data() | sdl_stun_probe() | sdl_stun_probe_reply() | sdl_register() | sdl_register_ack().
-export_type(['$msg_name'/0, '$msg'/0]). -export_type(['$msg_name'/0, '$msg'/0]).
-if(?OTP_RELEASE >= 24). -if(?OTP_RELEASE >= 24).
@ -130,6 +132,7 @@ encode_msg(Msg, MsgName, Opts) ->
case MsgName of case MsgName of
sdl_v4_info -> encode_msg_sdl_v4_info(id(Msg, TrUserData), TrUserData); sdl_v4_info -> encode_msg_sdl_v4_info(id(Msg, TrUserData), TrUserData);
sdl_v6_info -> encode_msg_sdl_v6_info(id(Msg, TrUserData), TrUserData); sdl_v6_info -> encode_msg_sdl_v6_info(id(Msg, TrUserData), TrUserData);
sdl_welcome -> encode_msg_sdl_welcome(id(Msg, TrUserData), TrUserData);
sdl_empty -> encode_msg_sdl_empty(id(Msg, TrUserData), TrUserData); sdl_empty -> encode_msg_sdl_empty(id(Msg, TrUserData), TrUserData);
sdl_register_super -> encode_msg_sdl_register_super(id(Msg, TrUserData), TrUserData); sdl_register_super -> encode_msg_sdl_register_super(id(Msg, TrUserData), TrUserData);
sdl_register_super_ack -> encode_msg_sdl_register_super_ack(id(Msg, TrUserData), TrUserData); sdl_register_super_ack -> encode_msg_sdl_register_super_ack(id(Msg, TrUserData), TrUserData);
@ -210,12 +213,10 @@ encode_msg_sdl_v6_info(#sdl_v6_info{port = F1, v6 = F2}, Bin, TrUserData) ->
end end
end. end.
encode_msg_sdl_empty(_Msg, _TrUserData) -> <<>>. encode_msg_sdl_welcome(Msg, TrUserData) -> encode_msg_sdl_welcome(Msg, <<>>, TrUserData).
encode_msg_sdl_register_super(Msg, TrUserData) -> encode_msg_sdl_register_super(Msg, <<>>, TrUserData).
encode_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2, network_id = F3, mac = F4, ip = F5, mask_len = F6, hostname = F7, pub_key = F8, access_token = F9}, Bin, TrUserData) -> encode_msg_sdl_welcome(#sdl_welcome{version = F1, max_bidi_streams = F2, max_packet_size = F3, heartbeat_sec = F4}, Bin, TrUserData) ->
B1 = if F1 == undefined -> Bin; B1 = if F1 == undefined -> Bin;
true -> true ->
begin begin
@ -229,9 +230,8 @@ encode_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2,
true -> true ->
begin begin
TrF2 = id(F2, TrUserData), TrF2 = id(F2, TrUserData),
case is_empty_string(TrF2) of if TrF2 =:= 0 -> B1;
true -> B1; true -> e_varint(TrF2, <<B1/binary, 16>>, TrUserData)
false -> e_type_string(TrF2, <<B1/binary, 18>>, TrUserData)
end end
end end
end, end,
@ -244,13 +244,57 @@ encode_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2,
end end
end end
end, end,
if F4 == undefined -> B3;
true ->
begin
TrF4 = id(F4, TrUserData),
if TrF4 =:= 0 -> B3;
true -> e_varint(TrF4, <<B3/binary, 32>>, TrUserData)
end
end
end.
encode_msg_sdl_empty(_Msg, _TrUserData) -> <<>>.
encode_msg_sdl_register_super(Msg, TrUserData) -> encode_msg_sdl_register_super(Msg, <<>>, TrUserData).
encode_msg_sdl_register_super(#sdl_register_super{client_id = F1, network_id = F2, mac = F3, ip = F4, mask_len = F5, hostname = F6, pub_key = F7, access_token = F8}, Bin, TrUserData) ->
B1 = if F1 == undefined -> Bin;
true ->
begin
TrF1 = id(F1, TrUserData),
case is_empty_string(TrF1) of
true -> Bin;
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
end
end
end,
B2 = if F2 == undefined -> B1;
true ->
begin
TrF2 = id(F2, TrUserData),
if TrF2 =:= 0 -> B1;
true -> e_varint(TrF2, <<B1/binary, 16>>, TrUserData)
end
end
end,
B3 = if F3 == undefined -> B2;
true ->
begin
TrF3 = id(F3, TrUserData),
case iolist_size(TrF3) of
0 -> B2;
_ -> e_type_bytes(TrF3, <<B2/binary, 26>>, TrUserData)
end
end
end,
B4 = if F4 == undefined -> B3; B4 = if F4 == undefined -> B3;
true -> true ->
begin begin
TrF4 = id(F4, TrUserData), TrF4 = id(F4, TrUserData),
case iolist_size(TrF4) of if TrF4 =:= 0 -> B3;
0 -> B3; true -> e_varint(TrF4, <<B3/binary, 32>>, TrUserData)
_ -> e_type_bytes(TrF4, <<B3/binary, 34>>, TrUserData)
end end
end end
end, end,
@ -267,8 +311,9 @@ encode_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2,
true -> true ->
begin begin
TrF6 = id(F6, TrUserData), TrF6 = id(F6, TrUserData),
if TrF6 =:= 0 -> B5; case is_empty_string(TrF6) of
true -> e_varint(TrF6, <<B5/binary, 48>>, TrUserData) true -> B5;
false -> e_type_string(TrF6, <<B5/binary, 50>>, TrUserData)
end end
end end
end, end,
@ -282,7 +327,7 @@ encode_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2,
end end
end end
end, end,
B8 = if F8 == undefined -> B7; if F8 == undefined -> B7;
true -> true ->
begin begin
TrF8 = id(F8, TrUserData), TrF8 = id(F8, TrUserData),
@ -291,16 +336,6 @@ encode_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2,
false -> e_type_string(TrF8, <<B7/binary, 66>>, TrUserData) false -> e_type_string(TrF8, <<B7/binary, 66>>, TrUserData)
end end
end end
end,
if F9 == undefined -> B8;
true ->
begin
TrF9 = id(F9, TrUserData),
case is_empty_string(TrF9) of
true -> B8;
false -> e_type_string(TrF9, <<B8/binary, 74>>, TrUserData)
end
end
end. end.
encode_msg_sdl_register_super_ack(Msg, TrUserData) -> encode_msg_sdl_register_super_ack(Msg, <<>>, TrUserData). encode_msg_sdl_register_super_ack(Msg, TrUserData) -> encode_msg_sdl_register_super_ack(Msg, <<>>, TrUserData).
@ -1050,6 +1085,7 @@ decode_msg_1_catch(Bin, MsgName, TrUserData) ->
decode_msg_2_doit(sdl_v4_info, Bin, TrUserData) -> id(decode_msg_sdl_v4_info(Bin, TrUserData), TrUserData); decode_msg_2_doit(sdl_v4_info, Bin, TrUserData) -> id(decode_msg_sdl_v4_info(Bin, TrUserData), TrUserData);
decode_msg_2_doit(sdl_v6_info, Bin, TrUserData) -> id(decode_msg_sdl_v6_info(Bin, TrUserData), TrUserData); decode_msg_2_doit(sdl_v6_info, Bin, TrUserData) -> id(decode_msg_sdl_v6_info(Bin, TrUserData), TrUserData);
decode_msg_2_doit(sdl_welcome, Bin, TrUserData) -> id(decode_msg_sdl_welcome(Bin, TrUserData), TrUserData);
decode_msg_2_doit(sdl_empty, Bin, TrUserData) -> id(decode_msg_sdl_empty(Bin, TrUserData), TrUserData); decode_msg_2_doit(sdl_empty, Bin, TrUserData) -> id(decode_msg_sdl_empty(Bin, TrUserData), TrUserData);
decode_msg_2_doit(sdl_register_super, Bin, TrUserData) -> id(decode_msg_sdl_register_super(Bin, TrUserData), TrUserData); decode_msg_2_doit(sdl_register_super, Bin, TrUserData) -> id(decode_msg_sdl_register_super(Bin, TrUserData), TrUserData);
decode_msg_2_doit(sdl_register_super_ack, Bin, TrUserData) -> id(decode_msg_sdl_register_super_ack(Bin, TrUserData), TrUserData); decode_msg_2_doit(sdl_register_super_ack, Bin, TrUserData) -> id(decode_msg_sdl_register_super_ack(Bin, TrUserData), TrUserData);
@ -1182,6 +1218,71 @@ 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_welcome(Bin, TrUserData) -> dfp_read_field_def_sdl_welcome(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData).
dfp_read_field_def_sdl_welcome(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_welcome_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
dfp_read_field_def_sdl_welcome(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_welcome_max_bidi_streams(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
dfp_read_field_def_sdl_welcome(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_welcome_max_packet_size(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
dfp_read_field_def_sdl_welcome(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_welcome_heartbeat_sec(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
dfp_read_field_def_sdl_welcome(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_welcome{version = F@_1, max_bidi_streams = F@_2, max_packet_size = F@_3, heartbeat_sec = F@_4};
dfp_read_field_def_sdl_welcome(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_sdl_welcome(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData).
dg_read_field_def_sdl_welcome(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_welcome(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
dg_read_field_def_sdl_welcome(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) ->
Key = X bsl N + Acc,
case Key of
8 -> d_field_sdl_welcome_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
16 -> d_field_sdl_welcome_max_bidi_streams(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
24 -> d_field_sdl_welcome_max_packet_size(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
32 -> d_field_sdl_welcome_heartbeat_sec(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData);
_ ->
case Key band 7 of
0 -> skip_varint_sdl_welcome(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData);
1 -> skip_64_sdl_welcome(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData);
2 -> skip_length_delimited_sdl_welcome(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData);
3 -> skip_group_sdl_welcome(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData);
5 -> skip_32_sdl_welcome(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData)
end
end;
dg_read_field_def_sdl_welcome(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_welcome{version = F@_1, max_bidi_streams = F@_2, max_packet_size = F@_3, heartbeat_sec = F@_4}.
d_field_sdl_welcome_version(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_welcome_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
d_field_sdl_welcome_version(<<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},
dfp_read_field_def_sdl_welcome(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData).
d_field_sdl_welcome_max_bidi_streams(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_welcome_max_bidi_streams(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
d_field_sdl_welcome_max_bidi_streams(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_welcome(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData).
d_field_sdl_welcome_max_packet_size(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_welcome_max_packet_size(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
d_field_sdl_welcome_max_packet_size(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_welcome(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData).
d_field_sdl_welcome_heartbeat_sec(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_welcome_heartbeat_sec(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
d_field_sdl_welcome_heartbeat_sec(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_welcome(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData).
skip_varint_sdl_welcome(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_sdl_welcome(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
skip_varint_sdl_welcome(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_welcome(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData).
skip_length_delimited_sdl_welcome(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> skip_length_delimited_sdl_welcome(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData);
skip_length_delimited_sdl_welcome(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) ->
Length = X bsl N + Acc,
<<_:Length/binary, Rest2/binary>> = Rest,
dfp_read_field_def_sdl_welcome(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData).
skip_group_sdl_welcome(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) ->
{_, Rest} = read_group(Bin, FNum),
dfp_read_field_def_sdl_welcome(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData).
skip_32_sdl_welcome(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_welcome(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData).
skip_64_sdl_welcome(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_welcome(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData).
decode_msg_sdl_empty(Bin, TrUserData) -> dfp_read_field_def_sdl_empty(Bin, 0, 0, 0, TrUserData). decode_msg_sdl_empty(Bin, TrUserData) -> dfp_read_field_def_sdl_empty(Bin, 0, 0, 0, TrUserData).
dfp_read_field_def_sdl_empty(<<>>, 0, 0, _, _) -> #sdl_empty{}; dfp_read_field_def_sdl_empty(<<>>, 0, 0, _, _) -> #sdl_empty{};
@ -1217,131 +1318,110 @@ skip_32_sdl_empty(<<_:32, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_fiel
skip_64_sdl_empty(<<_:64, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_sdl_empty(Rest, Z1, Z2, F, TrUserData). skip_64_sdl_empty(<<_:64, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_sdl_empty(Rest, Z1, Z2, F, TrUserData).
decode_msg_sdl_register_super(Bin, TrUserData) -> decode_msg_sdl_register_super(Bin, TrUserData) ->
dfp_read_field_def_sdl_register_super(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). dfp_read_field_def_sdl_register_super(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
dfp_read_field_def_sdl_register_super(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dfp_read_field_def_sdl_register_super(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_client_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); dfp_read_field_def_sdl_register_super(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
dfp_read_field_def_sdl_register_super(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dfp_read_field_def_sdl_register_super(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_client_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); dfp_read_field_def_sdl_register_super(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
dfp_read_field_def_sdl_register_super(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dfp_read_field_def_sdl_register_super(<<40, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_mask_len(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_network_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); dfp_read_field_def_sdl_register_super(<<50, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_hostname(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
dfp_read_field_def_sdl_register_super(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dfp_read_field_def_sdl_register_super(<<58, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_pub_key(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); dfp_read_field_def_sdl_register_super(<<66, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> d_field_sdl_register_super_access_token(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
dfp_read_field_def_sdl_register_super(<<40, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dfp_read_field_def_sdl_register_super(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _) ->
d_field_sdl_register_super_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); #sdl_register_super{client_id = F@_1, network_id = F@_2, mac = F@_3, ip = F@_4, mask_len = F@_5, hostname = F@_6, pub_key = F@_7, access_token = F@_8};
dfp_read_field_def_sdl_register_super(<<48, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dfp_read_field_def_sdl_register_super(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> dg_read_field_def_sdl_register_super(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_mask_len(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
dfp_read_field_def_sdl_register_super(<<58, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) ->
d_field_sdl_register_super_hostname(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
dfp_read_field_def_sdl_register_super(<<66, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) ->
d_field_sdl_register_super_pub_key(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
dfp_read_field_def_sdl_register_super(<<74, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) ->
d_field_sdl_register_super_access_token(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
dfp_read_field_def_sdl_register_super(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, _) ->
#sdl_register_super{version = F@_1, client_id = F@_2, network_id = F@_3, mac = F@_4, ip = F@_5, mask_len = F@_6, hostname = F@_7, pub_key = F@_8, access_token = F@_9};
dfp_read_field_def_sdl_register_super(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dg_read_field_def_sdl_register_super(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData).
dg_read_field_def_sdl_register_super(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_register_super(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 32 - 7 ->
dg_read_field_def_sdl_register_super(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); dg_read_field_def_sdl_register_super(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
dg_read_field_def_sdl_register_super(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> dg_read_field_def_sdl_register_super(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
Key = X bsl N + Acc, Key = X bsl N + Acc,
case Key of case Key of
8 -> d_field_sdl_register_super_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 10 -> d_field_sdl_register_super_client_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
18 -> d_field_sdl_register_super_client_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 16 -> d_field_sdl_register_super_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
24 -> d_field_sdl_register_super_network_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 26 -> d_field_sdl_register_super_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
34 -> d_field_sdl_register_super_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 32 -> d_field_sdl_register_super_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
40 -> d_field_sdl_register_super_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 40 -> d_field_sdl_register_super_mask_len(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
48 -> d_field_sdl_register_super_mask_len(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 50 -> d_field_sdl_register_super_hostname(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
58 -> d_field_sdl_register_super_hostname(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 58 -> d_field_sdl_register_super_pub_key(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
66 -> d_field_sdl_register_super_pub_key(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 66 -> d_field_sdl_register_super_access_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
74 -> d_field_sdl_register_super_access_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
_ -> _ ->
case Key band 7 of case Key band 7 of
0 -> skip_varint_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 0 -> skip_varint_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
1 -> skip_64_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 1 -> skip_64_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
2 -> skip_length_delimited_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 2 -> skip_length_delimited_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
3 -> skip_group_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); 3 -> skip_group_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
5 -> skip_32_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) 5 -> skip_32_sdl_register_super(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData)
end end
end; end;
dg_read_field_def_sdl_register_super(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, _) -> dg_read_field_def_sdl_register_super(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _) ->
#sdl_register_super{version = F@_1, client_id = F@_2, network_id = F@_3, mac = F@_4, ip = F@_5, mask_len = F@_6, hostname = F@_7, pub_key = F@_8, access_token = F@_9}. #sdl_register_super{client_id = F@_1, network_id = F@_2, mac = F@_3, ip = F@_4, mask_len = F@_5, hostname = F@_6, pub_key = F@_7, access_token = F@_8}.
d_field_sdl_register_super_version(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_client_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_client_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_version(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> d_field_sdl_register_super_client_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
{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_super(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_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, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_client_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_client_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_client_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> d_field_sdl_register_super_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, {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_super(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_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, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_network_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_network_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> d_field_sdl_register_super_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, F@_6, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_mask_len(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_mask_len(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> d_field_sdl_register_super_mask_len(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, F@_6, F@_7, F@_8, TrUserData) ->
{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_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData).
d_field_sdl_register_super_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 ->
d_field_sdl_register_super_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
d_field_sdl_register_super_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, F@_6, F@_7, F@_8, F@_9, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, F@_6, F@_7, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, F@_6, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_mask_len(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_hostname(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_mask_len(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_hostname(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_mask_len(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, _, F@_7, F@_8, F@_9, TrUserData) -> d_field_sdl_register_super_hostname(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, _, F@_7, F@_8, TrUserData) ->
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, NewFValue, F@_7, F@_8, F@_9, TrUserData).
d_field_sdl_register_super_hostname(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 ->
d_field_sdl_register_super_hostname(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData);
d_field_sdl_register_super_hostname(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _, F@_8, F@_9, TrUserData) ->
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, {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_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, NewFValue, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, NewFValue, F@_7, F@_8, TrUserData).
d_field_sdl_register_super_pub_key(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_pub_key(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_pub_key(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_pub_key(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_pub_key(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, _, F@_9, TrUserData) -> d_field_sdl_register_super_pub_key(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _, F@_8, TrUserData) ->
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, {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_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, NewFValue, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, NewFValue, F@_8, TrUserData).
d_field_sdl_register_super_access_token(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> d_field_sdl_register_super_access_token(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
d_field_sdl_register_super_access_token(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); d_field_sdl_register_super_access_token(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
d_field_sdl_register_super_access_token(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _, TrUserData) -> d_field_sdl_register_super_access_token(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, _, TrUserData) ->
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, {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_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, NewFValue, TrUserData). dfp_read_field_def_sdl_register_super(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, NewFValue, TrUserData).
skip_varint_sdl_register_super(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> skip_varint_sdl_register_super(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> skip_varint_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
skip_varint_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); skip_varint_sdl_register_super(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> dfp_read_field_def_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
skip_varint_sdl_register_super(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) ->
dfp_read_field_def_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData).
skip_length_delimited_sdl_register_super(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) when N < 57 -> skip_length_delimited_sdl_register_super(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) when N < 57 ->
skip_length_delimited_sdl_register_super(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData); skip_length_delimited_sdl_register_super(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData);
skip_length_delimited_sdl_register_super(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> skip_length_delimited_sdl_register_super(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
Length = X bsl N + Acc, Length = X bsl N + Acc,
<<_:Length/binary, Rest2/binary>> = Rest, <<_:Length/binary, Rest2/binary>> = Rest,
dfp_read_field_def_sdl_register_super(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
skip_group_sdl_register_super(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> skip_group_sdl_register_super(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) ->
{_, Rest} = read_group(Bin, FNum), {_, Rest} = read_group(Bin, FNum),
dfp_read_field_def_sdl_register_super(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData). dfp_read_field_def_sdl_register_super(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
skip_32_sdl_register_super(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> skip_32_sdl_register_super(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> dfp_read_field_def_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
dfp_read_field_def_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData).
skip_64_sdl_register_super(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData) -> skip_64_sdl_register_super(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData) -> dfp_read_field_def_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData).
dfp_read_field_def_sdl_register_super(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, TrUserData).
decode_msg_sdl_register_super_ack(Bin, TrUserData) -> dfp_read_field_def_sdl_register_super_ack(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). decode_msg_sdl_register_super_ack(Bin, TrUserData) -> dfp_read_field_def_sdl_register_super_ack(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
@ -2523,6 +2603,7 @@ merge_msgs(Prev, New, MsgName, Opts) ->
case MsgName of case MsgName of
sdl_v4_info -> merge_msg_sdl_v4_info(Prev, New, TrUserData); sdl_v4_info -> merge_msg_sdl_v4_info(Prev, New, TrUserData);
sdl_v6_info -> merge_msg_sdl_v6_info(Prev, New, TrUserData); sdl_v6_info -> merge_msg_sdl_v6_info(Prev, New, TrUserData);
sdl_welcome -> merge_msg_sdl_welcome(Prev, New, TrUserData);
sdl_empty -> merge_msg_sdl_empty(Prev, New, TrUserData); sdl_empty -> merge_msg_sdl_empty(Prev, New, TrUserData);
sdl_register_super -> merge_msg_sdl_register_super(Prev, New, TrUserData); sdl_register_super -> merge_msg_sdl_register_super(Prev, New, TrUserData);
sdl_register_super_ack -> merge_msg_sdl_register_super_ack(Prev, New, TrUserData); sdl_register_super_ack -> merge_msg_sdl_register_super_ack(Prev, New, TrUserData);
@ -2571,17 +2652,33 @@ merge_msg_sdl_v6_info(#sdl_v6_info{port = PFport, v6 = PFv6}, #sdl_v6_info{port
true -> NFv6 true -> NFv6
end}. end}.
-compile({nowarn_unused_function,merge_msg_sdl_welcome/3}).
merge_msg_sdl_welcome(#sdl_welcome{version = PFversion, max_bidi_streams = PFmax_bidi_streams, max_packet_size = PFmax_packet_size, heartbeat_sec = PFheartbeat_sec},
#sdl_welcome{version = NFversion, max_bidi_streams = NFmax_bidi_streams, max_packet_size = NFmax_packet_size, heartbeat_sec = NFheartbeat_sec}, _) ->
#sdl_welcome{version =
if NFversion =:= undefined -> PFversion;
true -> NFversion
end,
max_bidi_streams =
if NFmax_bidi_streams =:= undefined -> PFmax_bidi_streams;
true -> NFmax_bidi_streams
end,
max_packet_size =
if NFmax_packet_size =:= undefined -> PFmax_packet_size;
true -> NFmax_packet_size
end,
heartbeat_sec =
if NFheartbeat_sec =:= undefined -> PFheartbeat_sec;
true -> NFheartbeat_sec
end}.
-compile({nowarn_unused_function,merge_msg_sdl_empty/3}). -compile({nowarn_unused_function,merge_msg_sdl_empty/3}).
merge_msg_sdl_empty(_Prev, New, _TrUserData) -> New. merge_msg_sdl_empty(_Prev, New, _TrUserData) -> New.
-compile({nowarn_unused_function,merge_msg_sdl_register_super/3}). -compile({nowarn_unused_function,merge_msg_sdl_register_super/3}).
merge_msg_sdl_register_super(#sdl_register_super{version = PFversion, client_id = PFclient_id, network_id = PFnetwork_id, mac = PFmac, ip = PFip, mask_len = PFmask_len, hostname = PFhostname, pub_key = PFpub_key, access_token = PFaccess_token}, merge_msg_sdl_register_super(#sdl_register_super{client_id = PFclient_id, network_id = PFnetwork_id, mac = PFmac, ip = PFip, mask_len = PFmask_len, hostname = PFhostname, pub_key = PFpub_key, access_token = PFaccess_token},
#sdl_register_super{version = NFversion, client_id = NFclient_id, network_id = NFnetwork_id, mac = NFmac, ip = NFip, mask_len = NFmask_len, hostname = NFhostname, pub_key = NFpub_key, access_token = NFaccess_token}, _) -> #sdl_register_super{client_id = NFclient_id, network_id = NFnetwork_id, mac = NFmac, ip = NFip, mask_len = NFmask_len, hostname = NFhostname, pub_key = NFpub_key, access_token = NFaccess_token}, _) ->
#sdl_register_super{version = #sdl_register_super{client_id =
if NFversion =:= undefined -> PFversion;
true -> NFversion
end,
client_id =
if NFclient_id =:= undefined -> PFclient_id; if NFclient_id =:= undefined -> PFclient_id;
true -> NFclient_id true -> NFclient_id
end, end,
@ -2910,6 +3007,7 @@ verify_msg(Msg, MsgName, Opts) ->
case MsgName of case MsgName of
sdl_v4_info -> v_msg_sdl_v4_info(Msg, [MsgName], TrUserData); sdl_v4_info -> v_msg_sdl_v4_info(Msg, [MsgName], TrUserData);
sdl_v6_info -> v_msg_sdl_v6_info(Msg, [MsgName], TrUserData); sdl_v6_info -> v_msg_sdl_v6_info(Msg, [MsgName], TrUserData);
sdl_welcome -> v_msg_sdl_welcome(Msg, [MsgName], TrUserData);
sdl_empty -> v_msg_sdl_empty(Msg, [MsgName], TrUserData); sdl_empty -> v_msg_sdl_empty(Msg, [MsgName], TrUserData);
sdl_register_super -> v_msg_sdl_register_super(Msg, [MsgName], TrUserData); sdl_register_super -> v_msg_sdl_register_super(Msg, [MsgName], TrUserData);
sdl_register_super_ack -> v_msg_sdl_register_super_ack(Msg, [MsgName], TrUserData); sdl_register_super_ack -> v_msg_sdl_register_super_ack(Msg, [MsgName], TrUserData);
@ -2969,6 +3067,24 @@ v_msg_sdl_v6_info(#sdl_v6_info{port = F1, v6 = F2}, Path, TrUserData) ->
ok; ok;
v_msg_sdl_v6_info(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_v6_info}, X, Path). v_msg_sdl_v6_info(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_v6_info}, X, Path).
-compile({nowarn_unused_function,v_msg_sdl_welcome/3}).
-dialyzer({nowarn_function,v_msg_sdl_welcome/3}).
v_msg_sdl_welcome(#sdl_welcome{version = F1, max_bidi_streams = F2, max_packet_size = F3, heartbeat_sec = F4}, Path, TrUserData) ->
if F1 == undefined -> ok;
true -> v_type_uint32(F1, [version | Path], TrUserData)
end,
if F2 == undefined -> ok;
true -> v_type_uint32(F2, [max_bidi_streams | Path], TrUserData)
end,
if F3 == undefined -> ok;
true -> v_type_uint32(F3, [max_packet_size | Path], TrUserData)
end,
if F4 == undefined -> ok;
true -> v_type_uint32(F4, [heartbeat_sec | Path], TrUserData)
end,
ok;
v_msg_sdl_welcome(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_welcome}, X, Path).
-compile({nowarn_unused_function,v_msg_sdl_empty/3}). -compile({nowarn_unused_function,v_msg_sdl_empty/3}).
-dialyzer({nowarn_function,v_msg_sdl_empty/3}). -dialyzer({nowarn_function,v_msg_sdl_empty/3}).
v_msg_sdl_empty(#sdl_empty{}, _Path, _) -> ok; v_msg_sdl_empty(#sdl_empty{}, _Path, _) -> ok;
@ -2976,33 +3092,30 @@ v_msg_sdl_empty(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_empty}
-compile({nowarn_unused_function,v_msg_sdl_register_super/3}). -compile({nowarn_unused_function,v_msg_sdl_register_super/3}).
-dialyzer({nowarn_function,v_msg_sdl_register_super/3}). -dialyzer({nowarn_function,v_msg_sdl_register_super/3}).
v_msg_sdl_register_super(#sdl_register_super{version = F1, client_id = F2, network_id = F3, mac = F4, ip = F5, mask_len = F6, hostname = F7, pub_key = F8, access_token = F9}, Path, TrUserData) -> v_msg_sdl_register_super(#sdl_register_super{client_id = F1, network_id = F2, mac = F3, ip = F4, mask_len = F5, hostname = F6, pub_key = F7, access_token = F8}, Path, TrUserData) ->
if F1 == undefined -> ok; if F1 == undefined -> ok;
true -> v_type_uint32(F1, [version | Path], TrUserData) true -> v_type_string(F1, [client_id | Path], TrUserData)
end, end,
if F2 == undefined -> ok; if F2 == undefined -> ok;
true -> v_type_string(F2, [client_id | Path], TrUserData) true -> v_type_uint32(F2, [network_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_bytes(F3, [mac | Path], TrUserData)
end, end,
if F4 == undefined -> ok; if F4 == undefined -> ok;
true -> v_type_bytes(F4, [mac | Path], TrUserData) true -> v_type_uint32(F4, [ip | Path], TrUserData)
end, end,
if F5 == undefined -> ok; if F5 == undefined -> ok;
true -> v_type_uint32(F5, [ip | Path], TrUserData) true -> v_type_uint32(F5, [mask_len | Path], TrUserData)
end, end,
if F6 == undefined -> ok; if F6 == undefined -> ok;
true -> v_type_uint32(F6, [mask_len | Path], TrUserData) true -> v_type_string(F6, [hostname | Path], TrUserData)
end, end,
if F7 == undefined -> ok; if F7 == undefined -> ok;
true -> v_type_string(F7, [hostname | Path], TrUserData) true -> v_type_string(F7, [pub_key | Path], TrUserData)
end, end,
if F8 == undefined -> ok; if F8 == undefined -> ok;
true -> v_type_string(F8, [pub_key | Path], TrUserData) true -> v_type_string(F8, [access_token | Path], TrUserData)
end,
if F9 == undefined -> ok;
true -> v_type_string(F9, [access_token | Path], TrUserData)
end, end,
ok; ok;
v_msg_sdl_register_super(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register_super}, X, Path). v_msg_sdl_register_super(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register_super}, X, Path).
@ -3354,17 +3467,21 @@ get_msg_defs() ->
#field{name = v4, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}, #field{name = v4, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
#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_welcome},
[#field{name = version, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
#field{name = max_bidi_streams, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
#field{name = max_packet_size, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
#field{name = heartbeat_sec, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]},
{{msg, sdl_empty}, []}, {{msg, sdl_empty}, []},
{{msg, sdl_register_super}, {{msg, sdl_register_super},
[#field{name = version, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, [#field{name = client_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
#field{name = client_id, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []}, #field{name = network_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
#field{name = network_id, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, #field{name = mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []},
#field{name = mac, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []}, #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []},
#field{name = ip, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []}, #field{name = mask_len, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
#field{name = mask_len, fnum = 6, rnum = 7, type = uint32, occurrence = defaulty, opts = []}, #field{name = hostname, fnum = 6, rnum = 7, type = string, occurrence = defaulty, opts = []},
#field{name = hostname, fnum = 7, rnum = 8, type = string, occurrence = defaulty, opts = []}, #field{name = pub_key, fnum = 7, rnum = 8, type = string, occurrence = defaulty, opts = []},
#field{name = pub_key, fnum = 8, rnum = 9, type = string, occurrence = defaulty, opts = []}, #field{name = access_token, fnum = 8, rnum = 9, type = string, occurrence = defaulty, opts = []}]},
#field{name = access_token, fnum = 9, rnum = 10, type = string, occurrence = defaulty, opts = []}]},
{{msg, sdl_register_super_ack}, [#field{name = aes_key, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, #field{name = session_token, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}]}, {{msg, sdl_register_super_ack}, [#field{name = aes_key, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, #field{name = session_token, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}]},
{{msg, sdl_register_super_nak}, [#field{name = error_code, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = error_message, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []}]}, {{msg, sdl_register_super_nak}, [#field{name = error_code, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = error_message, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []}]},
{{msg, sdl_query_info}, [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}]}, {{msg, sdl_query_info}, [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}]},
@ -3431,6 +3548,7 @@ get_msg_defs() ->
get_msg_names() -> get_msg_names() ->
[sdl_v4_info, [sdl_v4_info,
sdl_v6_info, sdl_v6_info,
sdl_welcome,
sdl_empty, sdl_empty,
sdl_register_super, sdl_register_super,
sdl_register_super_ack, sdl_register_super_ack,
@ -3459,6 +3577,7 @@ get_group_names() -> [].
get_msg_or_group_names() -> get_msg_or_group_names() ->
[sdl_v4_info, [sdl_v4_info,
sdl_v6_info, sdl_v6_info,
sdl_welcome,
sdl_empty, sdl_empty,
sdl_register_super, sdl_register_super,
sdl_register_super_ack, sdl_register_super_ack,
@ -3500,17 +3619,21 @@ find_msg_def(sdl_v4_info) ->
#field{name = v4, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}, #field{name = v4, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []},
#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_welcome) ->
[#field{name = version, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []},
#field{name = max_bidi_streams, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
#field{name = max_packet_size, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []},
#field{name = heartbeat_sec, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}];
find_msg_def(sdl_empty) -> []; find_msg_def(sdl_empty) -> [];
find_msg_def(sdl_register_super) -> find_msg_def(sdl_register_super) ->
[#field{name = version, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, [#field{name = client_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []},
#field{name = client_id, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []}, #field{name = network_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []},
#field{name = network_id, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, #field{name = mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []},
#field{name = mac, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []}, #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []},
#field{name = ip, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []}, #field{name = mask_len, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []},
#field{name = mask_len, fnum = 6, rnum = 7, type = uint32, occurrence = defaulty, opts = []}, #field{name = hostname, fnum = 6, rnum = 7, type = string, occurrence = defaulty, opts = []},
#field{name = hostname, fnum = 7, rnum = 8, type = string, occurrence = defaulty, opts = []}, #field{name = pub_key, fnum = 7, rnum = 8, type = string, occurrence = defaulty, opts = []},
#field{name = pub_key, fnum = 8, rnum = 9, type = string, occurrence = defaulty, opts = []}, #field{name = access_token, fnum = 8, rnum = 9, type = string, occurrence = defaulty, opts = []}];
#field{name = access_token, fnum = 9, rnum = 10, type = string, occurrence = defaulty, opts = []}];
find_msg_def(sdl_register_super_ack) -> [#field{name = aes_key, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, #field{name = session_token, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}]; find_msg_def(sdl_register_super_ack) -> [#field{name = aes_key, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, #field{name = session_token, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}];
find_msg_def(sdl_register_super_nak) -> [#field{name = error_code, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = error_message, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []}]; find_msg_def(sdl_register_super_nak) -> [#field{name = error_code, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, #field{name = error_message, fnum = 2, rnum = 3, type = string, occurrence = defaulty, opts = []}];
find_msg_def(sdl_query_info) -> [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}]; find_msg_def(sdl_query_info) -> [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}];
@ -3632,6 +3755,7 @@ service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S
fqbin_to_msg_name(<<"SDLV4Info">>) -> sdl_v4_info; fqbin_to_msg_name(<<"SDLV4Info">>) -> sdl_v4_info;
fqbin_to_msg_name(<<"SDLV6Info">>) -> sdl_v6_info; fqbin_to_msg_name(<<"SDLV6Info">>) -> sdl_v6_info;
fqbin_to_msg_name(<<"SDLWelcome">>) -> sdl_welcome;
fqbin_to_msg_name(<<"SDLEmpty">>) -> sdl_empty; fqbin_to_msg_name(<<"SDLEmpty">>) -> sdl_empty;
fqbin_to_msg_name(<<"SDLRegisterSuper">>) -> sdl_register_super; fqbin_to_msg_name(<<"SDLRegisterSuper">>) -> sdl_register_super;
fqbin_to_msg_name(<<"SDLRegisterSuperAck">>) -> sdl_register_super_ack; fqbin_to_msg_name(<<"SDLRegisterSuperAck">>) -> sdl_register_super_ack;
@ -3657,6 +3781,7 @@ fqbin_to_msg_name(E) -> error({gpb_error, {badmsg, E}}).
msg_name_to_fqbin(sdl_v4_info) -> <<"SDLV4Info">>; msg_name_to_fqbin(sdl_v4_info) -> <<"SDLV4Info">>;
msg_name_to_fqbin(sdl_v6_info) -> <<"SDLV6Info">>; msg_name_to_fqbin(sdl_v6_info) -> <<"SDLV6Info">>;
msg_name_to_fqbin(sdl_welcome) -> <<"SDLWelcome">>;
msg_name_to_fqbin(sdl_empty) -> <<"SDLEmpty">>; msg_name_to_fqbin(sdl_empty) -> <<"SDLEmpty">>;
msg_name_to_fqbin(sdl_register_super) -> <<"SDLRegisterSuper">>; msg_name_to_fqbin(sdl_register_super) -> <<"SDLRegisterSuper">>;
msg_name_to_fqbin(sdl_register_super_ack) -> <<"SDLRegisterSuperAck">>; msg_name_to_fqbin(sdl_register_super_ack) -> <<"SDLRegisterSuperAck">>;
@ -3737,7 +3862,8 @@ get_msg_containment("sdlan_pb") ->
sdl_stun_reply, sdl_stun_reply,
sdl_stun_request, sdl_stun_request,
sdl_v4_info, sdl_v4_info,
sdl_v6_info]; sdl_v6_info,
sdl_welcome];
get_msg_containment(P) -> error({gpb_error, {badproto, P}}). get_msg_containment(P) -> error({gpb_error, {badproto, P}}).
@ -3766,6 +3892,7 @@ get_proto_by_msg_name_as_fqbin(<<"SDLPolicyRequest">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLNetworkShutdownEvent">>) -> "sdlan_pb"; get_proto_by_msg_name_as_fqbin(<<"SDLNetworkShutdownEvent">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLNatChangedEvent">>) -> "sdlan_pb"; get_proto_by_msg_name_as_fqbin(<<"SDLNatChangedEvent">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLArpRequest">>) -> "sdlan_pb"; get_proto_by_msg_name_as_fqbin(<<"SDLArpRequest">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLWelcome">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLStunProbe">>) -> "sdlan_pb"; get_proto_by_msg_name_as_fqbin(<<"SDLStunProbe">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLPolicyResponse">>) -> "sdlan_pb"; get_proto_by_msg_name_as_fqbin(<<"SDLPolicyResponse">>) -> "sdlan_pb";
get_proto_by_msg_name_as_fqbin(<<"SDLArpResponse">>) -> "sdlan_pb"; get_proto_by_msg_name_as_fqbin(<<"SDLArpResponse">>) -> "sdlan_pb";

View File

@ -10,7 +10,12 @@
{quic_server, [ {quic_server, [
{port, 1365}, {port, 1365},
{alpn, ["punchnet/1.0"]} {alpn, ["punchnet/1.0"]},
{limits, [
{max_packet_size, 16384},
%% 单位为秒
{heartbeat_sec, 5}
]}
]}, ]},
%% 网络带宽, 单位为: kb %% 网络带宽, 单位为: kb

View File

@ -8,6 +8,16 @@
{backlog, 10240} {backlog, 10240}
]}, ]},
{quic_server, [
{port, 1365},
{alpn, ["punchnet/1.0"]},
{limits, [
{max_packet_size, 16384},
%% 单位为秒
{heartbeat_sec, 5}
]}
]},
%% 网络带宽, 单位为: kb %% 网络带宽, 单位为: kb
{band_width, 2048}, {band_width, 2048},

View File

@ -17,6 +17,16 @@ message SDLV6Info {
// : <<Len:16, Data/binary>> // : <<Len:16, Data/binary>>
// : <<PacketId:32, PacketType:8, Payload/binary>> // : <<PacketId:32, PacketType:8, Payload/binary>>
message SDLWelcome {
uint32 version = 1;
//
uint32 max_bidi_streams = 2;
//
uint32 max_packet_size = 3;
//
uint32 heartbeat_sec = 4;
}
// quic // quic
message SDLEmpty { message SDLEmpty {
@ -24,20 +34,19 @@ message SDLEmpty {
// , // ,
message SDLRegisterSuper { message SDLRegisterSuper {
uint32 version = 1; string client_id = 1;
string client_id = 2;
// https请求分配了 // https请求分配了
// (network_id, mac, ip, mask_len, hostname) // (network_id, mac, ip, mask_len, hostname)
uint32 network_id = 3; uint32 network_id = 2;
bytes mac = 4; bytes mac = 3;
uint32 ip = 5; uint32 ip = 4;
uint32 mask_len = 6; uint32 mask_len = 5;
string hostname = 7; string hostname = 6;
string pub_key = 8; string pub_key = 7;
// 使http协议请求后端token或者账号密码登录时, access_token; // 使http协议请求后端token或者账号密码登录时, access_token;
// RegisterSuper的时候 (access_token) // RegisterSuper的时候 (access_token)
string access_token = 9; string access_token = 8;
} }
// https的接口里面去完成 // https的接口里面去完成