diff --git a/apps/sdlan/include/sdlan_pb.hrl b/apps/sdlan/include/sdlan_pb.hrl deleted file mode 100644 index 9277dad..0000000 --- a/apps/sdlan/include/sdlan_pb.hrl +++ /dev/null @@ -1,221 +0,0 @@ -%% -*- coding: utf-8 -*- -%% Automatically generated, do not edit -%% Generated by gpb_compile version 4.21.1 - --ifndef(sdlan_pb). --define(sdlan_pb, true). - --define(sdlan_pb_gpb_version, "4.21.1"). - - --ifndef('SDLV_4_INFO_PB_H'). --define('SDLV_4_INFO_PB_H', true). --record(sdl_v4_info, - {port = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - v4 = <<>> :: iodata() | undefined, % = 2, optional - nat_type = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits - }). --endif. - --ifndef('SDLV_6_INFO_PB_H'). --define('SDLV_6_INFO_PB_H', true). --record(sdl_v6_info, - {port = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - v6 = <<>> :: iodata() | undefined % = 2, optional - }). --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_REGISTER_SUPER_PB_H'). --define('SDL_REGISTER_SUPER_PB_H', true). --record(sdl_register_super, - {client_id = <<>> :: unicode:chardata() | undefined, % = 1, optional - network_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - mac = <<>> :: iodata() | undefined, % = 3, optional - ip = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits - mask_len = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits - hostname = <<>> :: unicode:chardata() | undefined, % = 6, optional - pub_key = <<>> :: unicode:chardata() | undefined, % = 7, optional - access_token = <<>> :: unicode:chardata() | undefined % = 8, optional - }). --endif. - --ifndef('SDL_REGISTER_SUPER_ACK_PB_H'). --define('SDL_REGISTER_SUPER_ACK_PB_H', true). --record(sdl_register_super_ack, - {algorithm = <<>> :: unicode:chardata() | undefined, % = 1, optional - key = <<>> :: iodata() | undefined, % = 2, optional - region_id = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - session_token = <<>> :: iodata() | undefined % = 4, optional - }). --endif. - --ifndef('SDL_REGISTER_SUPER_NAK_PB_H'). --define('SDL_REGISTER_SUPER_NAK_PB_H', true). --record(sdl_register_super_nak, - {error_code = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - error_message = <<>> :: unicode:chardata() | undefined % = 2, optional - }). --endif. - --ifndef('SDL_QUERY_INFO_PB_H'). --define('SDL_QUERY_INFO_PB_H', true). --record(sdl_query_info, - {dst_mac = <<>> :: iodata() | undefined % = 1, optional - }). --endif. - --ifndef('SDL_PEER_INFO_PB_H'). --define('SDL_PEER_INFO_PB_H', true). --record(sdl_peer_info, - {dst_mac = <<>> :: iodata() | undefined, % = 1, optional - v4_info :: sdlan_pb:sdl_v4_info() | undefined, % = 2, optional - v6_info :: sdlan_pb:sdl_v6_info() | undefined % = 3, optional - }). --endif. - --ifndef('SDL_ARP_REQUEST_PB_H'). --define('SDL_ARP_REQUEST_PB_H', true). --record(sdl_arp_request, - {target_ip = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - origin_ip = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - context = <<>> :: iodata() | undefined % = 3, optional - }). --endif. - --ifndef('SDL_ARP_RESPONSE_PB_H'). --define('SDL_ARP_RESPONSE_PB_H', true). --record(sdl_arp_response, - {target_ip = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - target_mac = <<>> :: iodata() | undefined, % = 2, optional - origin_ip = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - context = <<>> :: iodata() | undefined % = 4, optional - }). --endif. - --ifndef('SDL_POLICY_REQUEST_PB_H'). --define('SDL_POLICY_REQUEST_PB_H', true). --record(sdl_policy_request, - {src_identity_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - dst_identity_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - version = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits - }). --endif. - --ifndef('SDL_POLICY_RESPONSE_PB_H'). --define('SDL_POLICY_RESPONSE_PB_H', true). --record(sdl_policy_response, - {src_identity_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - dst_identity_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - version = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - rules = <<>> :: iodata() | undefined % = 4, optional - }). --endif. - --ifndef('SDL_NAT_CHANGED_EVENT_PB_H'). --define('SDL_NAT_CHANGED_EVENT_PB_H', true). --record(sdl_nat_changed_event, - {mac = <<>> :: iodata() | undefined, % = 1, optional - ip = 0 :: non_neg_integer() | undefined % = 2, optional, 32 bits - }). --endif. - --ifndef('SDL_SEND_REGISTER_EVENT_PB_H'). --define('SDL_SEND_REGISTER_EVENT_PB_H', true). --record(sdl_send_register_event, - {dst_mac = <<>> :: iodata() | undefined, % = 1, optional - nat_ip = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - nat_port = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - nat_type = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits - v6_info :: sdlan_pb:sdl_v6_info() | undefined % = 5, optional - }). --endif. - --ifndef('SDL_NETWORK_SHUTDOWN_EVENT_PB_H'). --define('SDL_NETWORK_SHUTDOWN_EVENT_PB_H', true). --record(sdl_network_shutdown_event, - {message = <<>> :: unicode:chardata() | undefined % = 1, optional - }). --endif. - --ifndef('SDL_STUN_REQUEST_PB_H'). --define('SDL_STUN_REQUEST_PB_H', true). --record(sdl_stun_request, - {client_id = <<>> :: unicode:chardata() | undefined, % = 1, optional - network_id = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - mac = <<>> :: iodata() | undefined, % = 3, optional - ip = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits - nat_type = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits - v6_info :: sdlan_pb:sdl_v6_info() | undefined, % = 6, optional - session_token = <<>> :: iodata() | undefined % = 7, optional - }). --endif. - --ifndef('SDL_STUN_REPLY_PB_H'). --define('SDL_STUN_REPLY_PB_H', true). --record(sdl_stun_reply, - { - }). --endif. - --ifndef('SDL_DATA_PB_H'). --define('SDL_DATA_PB_H', true). --record(sdl_data, - {network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - src_mac = <<>> :: iodata() | undefined, % = 2, optional - dst_mac = <<>> :: iodata() | undefined, % = 3, optional - is_p2p = false :: boolean() | 0 | 1 | undefined, % = 4, optional - ttl = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits - data = <<>> :: iodata() | undefined, % = 6, optional - session_token = <<>> :: iodata() | undefined, % = 7, optional - identity_id = 0 :: non_neg_integer() | undefined % = 8, optional, 32 bits - }). --endif. - --ifndef('SDL_STUN_PROBE_PB_H'). --define('SDL_STUN_PROBE_PB_H', true). --record(sdl_stun_probe, - {cookie = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - attr = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - step = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits - }). --endif. - --ifndef('SDL_STUN_PROBE_REPLY_PB_H'). --define('SDL_STUN_PROBE_REPLY_PB_H', true). --record(sdl_stun_probe_reply, - {cookie = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - step = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - port = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - ip = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits - }). --endif. - --ifndef('SDL_REGISTER_PB_H'). --define('SDL_REGISTER_PB_H', true). --record(sdl_register, - {network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - src_mac = <<>> :: iodata() | undefined, % = 2, optional - dst_mac = <<>> :: iodata() | undefined % = 3, optional - }). --endif. - --ifndef('SDL_REGISTER_ACK_PB_H'). --define('SDL_REGISTER_ACK_PB_H', true). --record(sdl_register_ack, - {network_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - src_mac = <<>> :: iodata() | undefined, % = 2, optional - dst_mac = <<>> :: iodata() | undefined % = 3, optional - }). --endif. - --endif. diff --git a/apps/sdlan/src/sdlan_network.erl b/apps/sdlan/src/sdlan_network.erl index 20037ee..a30e27d 100644 --- a/apps/sdlan/src/sdlan_network.erl +++ b/apps/sdlan/src/sdlan_network.erl @@ -206,10 +206,21 @@ handle_call({attach, ChannelPid, ClientId, Mac, Ip, Hostname}, _From, maybe {ok, #endpoint{ip = OldIp, channel_pid = OldChannelPid, channel_ref = OldChannelRef}} ?= maps:find(Mac, Endpoints), true ?= OldIp =/= Ip, - NatChangedEvent = sdlan_pb:encode_msg(#sdl_nat_changed_event{ - mac = Mac, - ip = Ip + + #sdl_event { + event = {nat_changed, #'sdl_event.nat_changed' { + mac = Mac, + ip = Ip + }} + }, + + Event = sdlan_pb:encode_msg(#sdl_event { + event = {nat_changed, #'sdl_event.nat_changed' { + mac = Mac, + ip = Ip + }} }), + broadcast(fun(#endpoint{channel_pid = ChannelPid0}) -> sdlan_quic_channel:send_event(ChannelPid0, ?EVENT_NAT_CHANGED, NatChangedEvent) end, [Mac], Endpoints), diff --git a/apps/sdlan/src/sdlan_pb.erl b/apps/sdlan/src/sdlan_pb.erl deleted file mode 100644 index e6ededa..0000000 --- a/apps/sdlan/src/sdlan_pb.erl +++ /dev/null @@ -1,4004 +0,0 @@ -%% -*- coding: utf-8 -*- -%% % this file is @generated -%% @private -%% Automatically generated, do not edit -%% Generated by gpb_compile version 4.21.1 -%% Version source: git --module(sdlan_pb). - --export([encode_msg/1, encode_msg/2, encode_msg/3]). --export([decode_msg/2, decode_msg/3]). --export([merge_msgs/2, merge_msgs/3, merge_msgs/4]). --export([verify_msg/1, verify_msg/2, verify_msg/3]). --export([get_msg_defs/0]). --export([get_msg_names/0]). --export([get_group_names/0]). --export([get_msg_or_group_names/0]). --export([get_enum_names/0]). --export([find_msg_def/1, fetch_msg_def/1]). --export([find_enum_def/1, fetch_enum_def/1]). --export([enum_symbol_by_value/2, enum_value_by_symbol/2]). --export([get_service_names/0]). --export([get_service_def/1]). --export([get_rpc_names/1]). --export([find_rpc_def/2, fetch_rpc_def/2]). --export([fqbin_to_service_name/1]). --export([service_name_to_fqbin/1]). --export([fqbins_to_service_and_rpc_name/2]). --export([service_and_rpc_name_to_fqbins/2]). --export([fqbin_to_msg_name/1]). --export([msg_name_to_fqbin/1]). --export([fqbin_to_enum_name/1]). --export([enum_name_to_fqbin/1]). --export([get_package_name/0]). --export([uses_packages/0]). --export([source_basename/0]). --export([get_all_source_basenames/0]). --export([get_all_proto_names/0]). --export([get_msg_containment/1]). --export([get_pkg_containment/1]). --export([get_service_containment/1]). --export([get_rpc_containment/1]). --export([get_enum_containment/1]). --export([get_proto_by_msg_name_as_fqbin/1]). --export([get_proto_by_service_name_as_fqbin/1]). --export([get_proto_by_enum_name_as_fqbin/1]). --export([get_protos_by_pkg_name_as_fqbin/1]). --export([gpb_version_as_string/0, gpb_version_as_list/0]). --export([gpb_version_source/0]). - --include("sdlan_pb.hrl"). --include_lib("gpb/include/gpb.hrl"). - -%% enumerated types - --export_type([]). - -%% message types --type sdl_v4_info() :: #sdl_v4_info{}. - --type sdl_v6_info() :: #sdl_v6_info{}. - --type sdl_welcome() :: #sdl_welcome{}. - --type sdl_register_super() :: #sdl_register_super{}. - --type sdl_register_super_ack() :: #sdl_register_super_ack{}. - --type sdl_register_super_nak() :: #sdl_register_super_nak{}. - --type sdl_query_info() :: #sdl_query_info{}. - --type sdl_peer_info() :: #sdl_peer_info{}. - --type sdl_arp_request() :: #sdl_arp_request{}. - --type sdl_arp_response() :: #sdl_arp_response{}. - --type sdl_policy_request() :: #sdl_policy_request{}. - --type sdl_policy_response() :: #sdl_policy_response{}. - --type sdl_nat_changed_event() :: #sdl_nat_changed_event{}. - --type sdl_send_register_event() :: #sdl_send_register_event{}. - --type sdl_network_shutdown_event() :: #sdl_network_shutdown_event{}. - --type sdl_stun_request() :: #sdl_stun_request{}. - --type sdl_stun_reply() :: #sdl_stun_reply{}. - --type sdl_data() :: #sdl_data{}. - --type sdl_stun_probe() :: #sdl_stun_probe{}. - --type sdl_stun_probe_reply() :: #sdl_stun_probe_reply{}. - --type sdl_register() :: #sdl_register{}. - --type sdl_register_ack() :: #sdl_register_ack{}. - --export_type(['sdl_v4_info'/0, 'sdl_v6_info'/0, 'sdl_welcome'/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_welcome | 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_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]). - --if(?OTP_RELEASE >= 24). --dialyzer({no_underspecs, encode_msg/1}). --endif. --spec encode_msg('$msg'()) -> binary(). -encode_msg(Msg) when tuple_size(Msg) >= 1 -> encode_msg(Msg, element(1, Msg), []). - --if(?OTP_RELEASE >= 24). --dialyzer({no_underspecs, encode_msg/2}). --endif. --spec encode_msg('$msg'(), '$msg_name'() | list()) -> binary(). -encode_msg(Msg, MsgName) when is_atom(MsgName) -> encode_msg(Msg, MsgName, []); -encode_msg(Msg, Opts) when tuple_size(Msg) >= 1, is_list(Opts) -> encode_msg(Msg, element(1, Msg), Opts). - --if(?OTP_RELEASE >= 24). --dialyzer({no_underspecs, encode_msg/3}). --endif. --spec encode_msg('$msg'(), '$msg_name'(), list()) -> binary(). -encode_msg(Msg, MsgName, Opts) -> - case proplists:get_bool(verify, Opts) of - true -> verify_msg(Msg, MsgName, Opts); - false -> ok - end, - TrUserData = proplists:get_value(user_data, Opts), - case MsgName of - 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_welcome -> encode_msg_sdl_welcome(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_nak -> encode_msg_sdl_register_super_nak(id(Msg, TrUserData), TrUserData); - sdl_query_info -> encode_msg_sdl_query_info(id(Msg, TrUserData), TrUserData); - sdl_peer_info -> encode_msg_sdl_peer_info(id(Msg, TrUserData), TrUserData); - sdl_arp_request -> encode_msg_sdl_arp_request(id(Msg, TrUserData), TrUserData); - sdl_arp_response -> encode_msg_sdl_arp_response(id(Msg, TrUserData), TrUserData); - sdl_policy_request -> encode_msg_sdl_policy_request(id(Msg, TrUserData), TrUserData); - sdl_policy_response -> encode_msg_sdl_policy_response(id(Msg, TrUserData), TrUserData); - sdl_nat_changed_event -> encode_msg_sdl_nat_changed_event(id(Msg, TrUserData), TrUserData); - sdl_send_register_event -> encode_msg_sdl_send_register_event(id(Msg, TrUserData), TrUserData); - sdl_network_shutdown_event -> encode_msg_sdl_network_shutdown_event(id(Msg, TrUserData), TrUserData); - sdl_stun_request -> encode_msg_sdl_stun_request(id(Msg, TrUserData), TrUserData); - sdl_stun_reply -> encode_msg_sdl_stun_reply(id(Msg, TrUserData), TrUserData); - sdl_data -> encode_msg_sdl_data(id(Msg, TrUserData), TrUserData); - sdl_stun_probe -> encode_msg_sdl_stun_probe(id(Msg, TrUserData), TrUserData); - sdl_stun_probe_reply -> encode_msg_sdl_stun_probe_reply(id(Msg, TrUserData), TrUserData); - sdl_register -> encode_msg_sdl_register(id(Msg, TrUserData), TrUserData); - sdl_register_ack -> encode_msg_sdl_register_ack(id(Msg, TrUserData), TrUserData) - end. - - -encode_msg_sdl_v4_info(Msg, TrUserData) -> encode_msg_sdl_v4_info(Msg, <<>>, TrUserData). - - -encode_msg_sdl_v4_info(#sdl_v4_info{port = F1, v4 = F2, nat_type = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end, - if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end. - -encode_msg_sdl_v6_info(Msg, TrUserData) -> encode_msg_sdl_v6_info(Msg, <<>>, TrUserData). - - -encode_msg_sdl_v6_info(#sdl_v6_info{port = F1, v6 = F2}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end. - -encode_msg_sdl_welcome(Msg, TrUserData) -> encode_msg_sdl_welcome(Msg, <<>>, 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; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end. - -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, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, 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, <>, TrUserData) - end - end - end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end, - B5 = if F5 == undefined -> B4; - true -> - begin - TrF5 = id(F5, TrUserData), - if TrF5 =:= 0 -> B4; - true -> e_varint(TrF5, <>, TrUserData) - end - end - end, - B6 = if F6 == undefined -> B5; - true -> - begin - TrF6 = id(F6, TrUserData), - case is_empty_string(TrF6) of - true -> B5; - false -> e_type_string(TrF6, <>, TrUserData) - end - end - end, - B7 = if F7 == undefined -> B6; - true -> - begin - TrF7 = id(F7, TrUserData), - case is_empty_string(TrF7) of - true -> B6; - false -> e_type_string(TrF7, <>, TrUserData) - end - end - end, - if F8 == undefined -> B7; - true -> - begin - TrF8 = id(F8, TrUserData), - case is_empty_string(TrF8) of - true -> B7; - false -> e_type_string(TrF8, <>, TrUserData) - 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(#sdl_register_super_ack{algorithm = F1, key = F2, region_id = F3, session_token = F4}, 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, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - case iolist_size(TrF4) of - 0 -> B3; - _ -> e_type_bytes(TrF4, <>, TrUserData) - end - end - end. - -encode_msg_sdl_register_super_nak(Msg, TrUserData) -> encode_msg_sdl_register_super_nak(Msg, <<>>, TrUserData). - - -encode_msg_sdl_register_super_nak(#sdl_register_super_nak{error_code = F1, error_message = F2}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case is_empty_string(TrF2) of - true -> B1; - false -> e_type_string(TrF2, <>, TrUserData) - end - end - end. - -encode_msg_sdl_query_info(Msg, TrUserData) -> encode_msg_sdl_query_info(Msg, <<>>, TrUserData). - - -encode_msg_sdl_query_info(#sdl_query_info{dst_mac = F1}, Bin, TrUserData) -> - if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case iolist_size(TrF1) of - 0 -> Bin; - _ -> e_type_bytes(TrF1, <>, TrUserData) - end - end - end. - -encode_msg_sdl_peer_info(Msg, TrUserData) -> encode_msg_sdl_peer_info(Msg, <<>>, TrUserData). - - -encode_msg_sdl_peer_info(#sdl_peer_info{dst_mac = F1, v4_info = F2, v6_info = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case iolist_size(TrF1) of - 0 -> Bin; - _ -> e_type_bytes(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> begin TrF2 = id(F2, TrUserData), e_mfield_sdl_peer_info_v4_info(TrF2, <>, TrUserData) end - end, - if F3 == undefined -> B2; - true -> begin TrF3 = id(F3, TrUserData), e_mfield_sdl_peer_info_v6_info(TrF3, <>, TrUserData) end - end. - -encode_msg_sdl_arp_request(Msg, TrUserData) -> encode_msg_sdl_arp_request(Msg, <<>>, TrUserData). - - -encode_msg_sdl_arp_request(#sdl_arp_request{target_ip = F1, origin_ip = F2, context = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - case iolist_size(TrF3) of - 0 -> B2; - _ -> e_type_bytes(TrF3, <>, TrUserData) - end - end - end. - -encode_msg_sdl_arp_response(Msg, TrUserData) -> encode_msg_sdl_arp_response(Msg, <<>>, TrUserData). - - -encode_msg_sdl_arp_response(#sdl_arp_response{target_ip = F1, target_mac = F2, origin_ip = F3, context = F4}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - case iolist_size(TrF4) of - 0 -> B3; - _ -> e_type_bytes(TrF4, <>, TrUserData) - end - end - end. - -encode_msg_sdl_policy_request(Msg, TrUserData) -> encode_msg_sdl_policy_request(Msg, <<>>, TrUserData). - - -encode_msg_sdl_policy_request(#sdl_policy_request{src_identity_id = F1, dst_identity_id = F2, version = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end. - -encode_msg_sdl_policy_response(Msg, TrUserData) -> encode_msg_sdl_policy_response(Msg, <<>>, TrUserData). - - -encode_msg_sdl_policy_response(#sdl_policy_response{src_identity_id = F1, dst_identity_id = F2, version = F3, rules = F4}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - case iolist_size(TrF4) of - 0 -> B3; - _ -> e_type_bytes(TrF4, <>, TrUserData) - end - end - end. - -encode_msg_sdl_nat_changed_event(Msg, TrUserData) -> encode_msg_sdl_nat_changed_event(Msg, <<>>, TrUserData). - - -encode_msg_sdl_nat_changed_event(#sdl_nat_changed_event{mac = F1, ip = F2}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case iolist_size(TrF1) of - 0 -> Bin; - _ -> e_type_bytes(TrF1, <>, TrUserData) - end - end - end, - if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end. - -encode_msg_sdl_send_register_event(Msg, TrUserData) -> encode_msg_sdl_send_register_event(Msg, <<>>, TrUserData). - - -encode_msg_sdl_send_register_event(#sdl_send_register_event{dst_mac = F1, nat_ip = F2, nat_port = F3, nat_type = F4, v6_info = F5}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case iolist_size(TrF1) of - 0 -> Bin; - _ -> e_type_bytes(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end, - if F5 == undefined -> B4; - true -> begin TrF5 = id(F5, TrUserData), e_mfield_sdl_send_register_event_v6_info(TrF5, <>, TrUserData) end - end. - -encode_msg_sdl_network_shutdown_event(Msg, TrUserData) -> encode_msg_sdl_network_shutdown_event(Msg, <<>>, TrUserData). - - -encode_msg_sdl_network_shutdown_event(#sdl_network_shutdown_event{message = F1}, Bin, TrUserData) -> - if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case is_empty_string(TrF1) of - true -> Bin; - false -> e_type_string(TrF1, <>, TrUserData) - end - end - end. - -encode_msg_sdl_stun_request(Msg, TrUserData) -> encode_msg_sdl_stun_request(Msg, <<>>, TrUserData). - - -encode_msg_sdl_stun_request(#sdl_stun_request{client_id = F1, network_id = F2, mac = F3, ip = F4, nat_type = F5, v6_info = F6, session_token = F7}, 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, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, 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, <>, TrUserData) - end - end - end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end, - B5 = if F5 == undefined -> B4; - true -> - begin - TrF5 = id(F5, TrUserData), - if TrF5 =:= 0 -> B4; - true -> e_varint(TrF5, <>, TrUserData) - end - end - end, - B6 = if F6 == undefined -> B5; - true -> begin TrF6 = id(F6, TrUserData), e_mfield_sdl_stun_request_v6_info(TrF6, <>, TrUserData) end - end, - if F7 == undefined -> B6; - true -> - begin - TrF7 = id(F7, TrUserData), - case iolist_size(TrF7) of - 0 -> B6; - _ -> e_type_bytes(TrF7, <>, TrUserData) - end - end - end. - -encode_msg_sdl_stun_reply(_Msg, _TrUserData) -> <<>>. - -encode_msg_sdl_data(Msg, TrUserData) -> encode_msg_sdl_data(Msg, <<>>, TrUserData). - - -encode_msg_sdl_data(#sdl_data{network_id = F1, src_mac = F2, dst_mac = F3, is_p2p = F4, ttl = F5, data = F6, session_token = F7, identity_id = F8}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, 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, <>, TrUserData) - end - end - end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= false -> B3; - true -> e_type_bool(TrF4, <>, TrUserData) - end - end - end, - B5 = if F5 == undefined -> B4; - true -> - begin - TrF5 = id(F5, TrUserData), - if TrF5 =:= 0 -> B4; - true -> e_varint(TrF5, <>, TrUserData) - end - end - end, - B6 = if F6 == undefined -> B5; - true -> - begin - TrF6 = id(F6, TrUserData), - case iolist_size(TrF6) of - 0 -> B5; - _ -> e_type_bytes(TrF6, <>, TrUserData) - end - end - end, - B7 = if F7 == undefined -> B6; - true -> - begin - TrF7 = id(F7, TrUserData), - case iolist_size(TrF7) of - 0 -> B6; - _ -> e_type_bytes(TrF7, <>, TrUserData) - end - end - end, - if F8 == undefined -> B7; - true -> - begin - TrF8 = id(F8, TrUserData), - if TrF8 =:= 0 -> B7; - true -> e_varint(TrF8, <>, TrUserData) - end - end - end. - -encode_msg_sdl_stun_probe(Msg, TrUserData) -> encode_msg_sdl_stun_probe(Msg, <<>>, TrUserData). - - -encode_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1, attr = F2, step = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end. - -encode_msg_sdl_stun_probe_reply(Msg, TrUserData) -> encode_msg_sdl_stun_probe_reply(Msg, <<>>, TrUserData). - - -encode_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = F1, step = F2, port = F3, ip = F4}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end. - -encode_msg_sdl_register(Msg, TrUserData) -> encode_msg_sdl_register(Msg, <<>>, TrUserData). - - -encode_msg_sdl_register(#sdl_register{network_id = F1, src_mac = F2, dst_mac = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end, - if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - case iolist_size(TrF3) of - 0 -> B2; - _ -> e_type_bytes(TrF3, <>, TrUserData) - end - end - end. - -encode_msg_sdl_register_ack(Msg, TrUserData) -> encode_msg_sdl_register_ack(Msg, <<>>, TrUserData). - - -encode_msg_sdl_register_ack(#sdl_register_ack{network_id = F1, src_mac = F2, dst_mac = F3}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end, - if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - case iolist_size(TrF3) of - 0 -> B2; - _ -> e_type_bytes(TrF3, <>, TrUserData) - end - end - end. - -e_mfield_sdl_peer_info_v4_info(Msg, Bin, TrUserData) -> - SubBin = encode_msg_sdl_v4_info(Msg, <<>>, TrUserData), - Bin2 = e_varint(byte_size(SubBin), Bin), - <>. - -e_mfield_sdl_peer_info_v6_info(Msg, Bin, TrUserData) -> - SubBin = encode_msg_sdl_v6_info(Msg, <<>>, TrUserData), - Bin2 = e_varint(byte_size(SubBin), Bin), - <>. - -e_mfield_sdl_send_register_event_v6_info(Msg, Bin, TrUserData) -> - SubBin = encode_msg_sdl_v6_info(Msg, <<>>, TrUserData), - Bin2 = e_varint(byte_size(SubBin), Bin), - <>. - -e_mfield_sdl_stun_request_v6_info(Msg, Bin, TrUserData) -> - SubBin = encode_msg_sdl_v6_info(Msg, <<>>, TrUserData), - Bin2 = e_varint(byte_size(SubBin), Bin), - <>. - --compile({nowarn_unused_function,e_type_sint/3}). -e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); -e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). - --compile({nowarn_unused_function,e_type_int32/3}). -e_type_int32(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; -e_type_int32(Value, Bin, _TrUserData) -> - <> = <>, - e_varint(N, Bin). - --compile({nowarn_unused_function,e_type_int64/3}). -e_type_int64(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; -e_type_int64(Value, Bin, _TrUserData) -> - <> = <>, - e_varint(N, Bin). - --compile({nowarn_unused_function,e_type_bool/3}). -e_type_bool(true, Bin, _TrUserData) -> <>; -e_type_bool(false, Bin, _TrUserData) -> <>; -e_type_bool(1, Bin, _TrUserData) -> <>; -e_type_bool(0, Bin, _TrUserData) -> <>. - --compile({nowarn_unused_function,e_type_string/3}). -e_type_string(S, Bin, _TrUserData) -> - Utf8 = unicode:characters_to_binary(S), - Bin2 = e_varint(byte_size(Utf8), Bin), - <>. - --compile({nowarn_unused_function,e_type_bytes/3}). -e_type_bytes(Bytes, Bin, _TrUserData) when is_binary(Bytes) -> - Bin2 = e_varint(byte_size(Bytes), Bin), - <>; -e_type_bytes(Bytes, Bin, _TrUserData) when is_list(Bytes) -> - BytesBin = iolist_to_binary(Bytes), - Bin2 = e_varint(byte_size(BytesBin), Bin), - <>. - --compile({nowarn_unused_function,e_type_fixed32/3}). -e_type_fixed32(Value, Bin, _TrUserData) -> <>. - --compile({nowarn_unused_function,e_type_sfixed32/3}). -e_type_sfixed32(Value, Bin, _TrUserData) -> <>. - --compile({nowarn_unused_function,e_type_fixed64/3}). -e_type_fixed64(Value, Bin, _TrUserData) -> <>. - --compile({nowarn_unused_function,e_type_sfixed64/3}). -e_type_sfixed64(Value, Bin, _TrUserData) -> <>. - --compile({nowarn_unused_function,e_type_float/3}). -e_type_float(V, Bin, _) when is_number(V) -> <>; -e_type_float(infinity, Bin, _) -> <>; -e_type_float('-infinity', Bin, _) -> <>; -e_type_float(nan, Bin, _) -> <>. - --compile({nowarn_unused_function,e_type_double/3}). -e_type_double(V, Bin, _) when is_number(V) -> <>; -e_type_double(infinity, Bin, _) -> <>; -e_type_double('-infinity', Bin, _) -> <>; -e_type_double(nan, Bin, _) -> <>. - --compile({nowarn_unused_function,e_unknown_elems/2}). -e_unknown_elems([Elem | Rest], Bin) -> - BinR = case Elem of - {varint, FNum, N} -> - BinF = e_varint(FNum bsl 3, Bin), - e_varint(N, BinF); - {length_delimited, FNum, Data} -> - BinF = e_varint(FNum bsl 3 bor 2, Bin), - BinL = e_varint(byte_size(Data), BinF), - <>; - {group, FNum, GroupFields} -> - Bin1 = e_varint(FNum bsl 3 bor 3, Bin), - Bin2 = e_unknown_elems(GroupFields, Bin1), - e_varint(FNum bsl 3 bor 4, Bin2); - {fixed32, FNum, V} -> - BinF = e_varint(FNum bsl 3 bor 5, Bin), - <>; - {fixed64, FNum, V} -> - BinF = e_varint(FNum bsl 3 bor 1, Bin), - <> - end, - e_unknown_elems(Rest, BinR); -e_unknown_elems([], Bin) -> Bin. - --compile({nowarn_unused_function,e_varint/3}). -e_varint(N, Bin, _TrUserData) -> e_varint(N, Bin). - --compile({nowarn_unused_function,e_varint/2}). -e_varint(N, Bin) when N =< 127 -> <>; -e_varint(N, Bin) -> - Bin2 = <>, - e_varint(N bsr 7, Bin2). - -is_empty_string("") -> true; -is_empty_string(<<>>) -> true; -is_empty_string(L) when is_list(L) -> not string_has_chars(L); -is_empty_string(B) when is_binary(B) -> false. - -string_has_chars([C | _]) when is_integer(C) -> true; -string_has_chars([H | T]) -> - case string_has_chars(H) of - true -> true; - false -> string_has_chars(T) - end; -string_has_chars(B) when is_binary(B), byte_size(B) =/= 0 -> true; -string_has_chars(C) when is_integer(C) -> true; -string_has_chars(<<>>) -> false; -string_has_chars([]) -> false. - - -decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []). - -decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> - TrUserData = proplists:get_value(user_data, Opts), - decode_msg_1_catch(Bin, MsgName, TrUserData). - --ifdef('OTP_RELEASE'). -decode_msg_1_catch(Bin, MsgName, TrUserData) -> - try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch - error:{gpb_error,_}=Reason:StackTrace -> - erlang:raise(error, Reason, StackTrace); - Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) - end. --else. -decode_msg_1_catch(Bin, MsgName, TrUserData) -> - try decode_msg_2_doit(MsgName, Bin, TrUserData) - catch - error:{gpb_error,_}=Reason -> - erlang:raise(error, Reason, - erlang:get_stacktrace()); - Class:Reason -> - StackTrace = erlang:get_stacktrace(), - error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) - end. --endif. - -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_welcome, Bin, TrUserData) -> id(decode_msg_sdl_welcome(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_nak, Bin, TrUserData) -> id(decode_msg_sdl_register_super_nak(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_query_info, Bin, TrUserData) -> id(decode_msg_sdl_query_info(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_peer_info, Bin, TrUserData) -> id(decode_msg_sdl_peer_info(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_arp_request, Bin, TrUserData) -> id(decode_msg_sdl_arp_request(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_arp_response, Bin, TrUserData) -> id(decode_msg_sdl_arp_response(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_policy_request, Bin, TrUserData) -> id(decode_msg_sdl_policy_request(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_policy_response, Bin, TrUserData) -> id(decode_msg_sdl_policy_response(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_nat_changed_event, Bin, TrUserData) -> id(decode_msg_sdl_nat_changed_event(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_send_register_event, Bin, TrUserData) -> id(decode_msg_sdl_send_register_event(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_network_shutdown_event, Bin, TrUserData) -> id(decode_msg_sdl_network_shutdown_event(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_stun_request, Bin, TrUserData) -> id(decode_msg_sdl_stun_request(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_stun_reply, Bin, TrUserData) -> id(decode_msg_sdl_stun_reply(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_data, Bin, TrUserData) -> id(decode_msg_sdl_data(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_stun_probe, Bin, TrUserData) -> id(decode_msg_sdl_stun_probe(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_stun_probe_reply, Bin, TrUserData) -> id(decode_msg_sdl_stun_probe_reply(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_register, Bin, TrUserData) -> id(decode_msg_sdl_register(Bin, TrUserData), TrUserData); -decode_msg_2_doit(sdl_register_ack, Bin, TrUserData) -> id(decode_msg_sdl_register_ack(Bin, TrUserData), TrUserData). - - - -decode_msg_sdl_v4_info(Bin, TrUserData) -> dfp_read_field_def_sdl_v4_info(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). - -dfp_read_field_def_sdl_v4_info(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_v4_info_port(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_v4_info(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_v4_info_v4(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_v4_info(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_v4_info_nat_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_v4_info(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_v4_info{port = F@_1, v4 = F@_2, nat_type = F@_3}; -dfp_read_field_def_sdl_v4_info(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_v4_info(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_v4_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_v4_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_sdl_v4_info(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_sdl_v4_info_port(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 18 -> d_field_sdl_v4_info_v4(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 24 -> d_field_sdl_v4_info_nat_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_v4_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_v4_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_v4_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_v4_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_v4_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_read_field_def_sdl_v4_info(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_v4_info{port = F@_1, v4 = F@_2, nat_type = F@_3}. - -d_field_sdl_v4_info_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_v4_info_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_v4_info_port(<<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}, - dfp_read_field_def_sdl_v4_info(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). - -d_field_sdl_v4_info_v4(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_v4_info_v4(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_v4_info_v4(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_v4_info(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). - -d_field_sdl_v4_info_nat_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_v4_info_nat_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_v4_info_nat_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_v4_info(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). - -skip_varint_sdl_v4_info(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_v4_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_v4_info(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_v4_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_sdl_v4_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_v4_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_v4_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_v4_info(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_v4_info(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_v4_info(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_v4_info(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_v4_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_64_sdl_v4_info(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_v4_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -decode_msg_sdl_v6_info(Bin, TrUserData) -> dfp_read_field_def_sdl_v6_info(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_v6_info(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_sdl_v6_info_port(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_sdl_v6_info(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_sdl_v6_info_v6(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_sdl_v6_info(<<>>, 0, 0, _, F@_1, F@_2, _) -> #sdl_v6_info{port = F@_1, v6 = F@_2}; -dfp_read_field_def_sdl_v6_info(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_sdl_v6_info(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -dg_read_field_def_sdl_v6_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_v6_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_sdl_v6_info(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_sdl_v6_info_port(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_sdl_v6_info_v6(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_v6_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_sdl_v6_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_sdl_v6_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_sdl_v6_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_sdl_v6_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -dg_read_field_def_sdl_v6_info(<<>>, 0, 0, _, F@_1, F@_2, _) -> #sdl_v6_info{port = F@_1, v6 = F@_2}. - -d_field_sdl_v6_info_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_sdl_v6_info_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_sdl_v6_info_port(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_v6_info(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_sdl_v6_info_v6(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_sdl_v6_info_v6(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_sdl_v6_info_v6(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_v6_info(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). - -skip_varint_sdl_v6_info(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_sdl_v6_info(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_sdl_v6_info(<<0:1, _:7, 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_length_delimited_sdl_v6_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_sdl_v6_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_sdl_v6_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_v6_info(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -skip_group_sdl_v6_info(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_v6_info(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -skip_32_sdl_v6_info(<<_:32, 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_register_super(Bin, 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(<<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); -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(<<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); -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(<<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); -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(<<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); -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(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _) -> - #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(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). - -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, 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, - case Key of - 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); - 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); - 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); - 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_mask_len(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, 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_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_access_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); - _ -> - 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, 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, 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, TrUserData) - 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, _) -> - #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_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_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_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, <> = 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}, - 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_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_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_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, <> = 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, NewFValue, F@_4, F@_5, F@_6, F@_7, F@_8, 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, 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, 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}, - 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_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_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_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} = {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, 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, 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, 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} = begin Len = X bsl N + Acc, <> = 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, 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, 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, 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, <> = 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, 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, 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, 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, <> = 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, 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(<<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_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, 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/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, 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), - 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, 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_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). - -decode_msg_sdl_register_super_ack(Bin, TrUserData) -> dfp_read_field_def_sdl_register_super_ack(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_register_super_ack(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_register_super_ack_algorithm(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_register_super_ack(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_register_super_ack_key(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_register_super_ack(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_register_super_ack_region_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_register_super_ack(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_register_super_ack_session_token(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_register_super_ack(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_register_super_ack{algorithm = F@_1, key = F@_2, region_id = F@_3, session_token = F@_4}; -dfp_read_field_def_sdl_register_super_ack(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_sdl_register_super_ack(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -dg_read_field_def_sdl_register_super_ack(<<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_register_super_ack(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dg_read_field_def_sdl_register_super_ack(<<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 - 10 -> d_field_sdl_register_super_ack_algorithm(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 18 -> d_field_sdl_register_super_ack_key(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 24 -> d_field_sdl_register_super_ack_region_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 34 -> d_field_sdl_register_super_ack_session_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_register_super_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 1 -> skip_64_sdl_register_super_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 2 -> skip_length_delimited_sdl_register_super_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 3 -> skip_group_sdl_register_super_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 5 -> skip_32_sdl_register_super_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) - end - end; -dg_read_field_def_sdl_register_super_ack(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_register_super_ack{algorithm = F@_1, key = F@_2, region_id = F@_3, session_token = F@_4}. - -d_field_sdl_register_super_ack_algorithm(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_register_super_ack_algorithm(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_register_super_ack_algorithm(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register_super_ack(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). - -d_field_sdl_register_super_ack_key(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_register_super_ack_key(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_register_super_ack_key(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register_super_ack(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). - -d_field_sdl_register_super_ack_region_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_register_super_ack_region_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_register_super_ack_region_id(<<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_register_super_ack(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). - -d_field_sdl_register_super_ack_session_token(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_register_super_ack_session_token(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_register_super_ack_session_token(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register_super_ack(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). - -skip_varint_sdl_register_super_ack(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_sdl_register_super_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_varint_sdl_register_super_ack(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_register_super_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_length_delimited_sdl_register_super_ack(<<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_register_super_ack(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_length_delimited_sdl_register_super_ack(<<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_register_super_ack(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_group_sdl_register_super_ack(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_register_super_ack(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_32_sdl_register_super_ack(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_register_super_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_64_sdl_register_super_ack(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_register_super_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -decode_msg_sdl_register_super_nak(Bin, TrUserData) -> dfp_read_field_def_sdl_register_super_nak(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_register_super_nak(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_sdl_register_super_nak_error_code(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_sdl_register_super_nak(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_sdl_register_super_nak_error_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_sdl_register_super_nak(<<>>, 0, 0, _, F@_1, F@_2, _) -> #sdl_register_super_nak{error_code = F@_1, error_message = F@_2}; -dfp_read_field_def_sdl_register_super_nak(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_sdl_register_super_nak(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -dg_read_field_def_sdl_register_super_nak(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_register_super_nak(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_sdl_register_super_nak(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_sdl_register_super_nak_error_code(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_sdl_register_super_nak_error_message(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_register_super_nak(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_sdl_register_super_nak(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_sdl_register_super_nak(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_sdl_register_super_nak(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_sdl_register_super_nak(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -dg_read_field_def_sdl_register_super_nak(<<>>, 0, 0, _, F@_1, F@_2, _) -> #sdl_register_super_nak{error_code = F@_1, error_message = F@_2}. - -d_field_sdl_register_super_nak_error_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_sdl_register_super_nak_error_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_sdl_register_super_nak_error_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_register_super_nak(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_sdl_register_super_nak_error_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_sdl_register_super_nak_error_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_sdl_register_super_nak_error_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register_super_nak(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). - -skip_varint_sdl_register_super_nak(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_sdl_register_super_nak(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_sdl_register_super_nak(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_register_super_nak(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_length_delimited_sdl_register_super_nak(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_sdl_register_super_nak(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_sdl_register_super_nak(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_register_super_nak(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -skip_group_sdl_register_super_nak(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_register_super_nak(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -skip_32_sdl_register_super_nak(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_register_super_nak(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_64_sdl_register_super_nak(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_register_super_nak(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -decode_msg_sdl_query_info(Bin, TrUserData) -> dfp_read_field_def_sdl_query_info(Bin, 0, 0, 0, id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_query_info(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_sdl_query_info_dst_mac(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_sdl_query_info(<<>>, 0, 0, _, F@_1, _) -> #sdl_query_info{dst_mac = F@_1}; -dfp_read_field_def_sdl_query_info(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_sdl_query_info(Other, Z1, Z2, F, F@_1, TrUserData). - -dg_read_field_def_sdl_query_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_query_info(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -dg_read_field_def_sdl_query_info(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_sdl_query_info_dst_mac(Rest, 0, 0, 0, F@_1, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_query_info(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 1 -> skip_64_sdl_query_info(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 2 -> skip_length_delimited_sdl_query_info(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 3 -> skip_group_sdl_query_info(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 5 -> skip_32_sdl_query_info(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) - end - end; -dg_read_field_def_sdl_query_info(<<>>, 0, 0, _, F@_1, _) -> #sdl_query_info{dst_mac = F@_1}. - -d_field_sdl_query_info_dst_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_sdl_query_info_dst_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_sdl_query_info_dst_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_query_info(RestF, 0, 0, F, NewFValue, TrUserData). - -skip_varint_sdl_query_info(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_sdl_query_info(Rest, Z1, Z2, F, F@_1, TrUserData); -skip_varint_sdl_query_info(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_query_info(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_length_delimited_sdl_query_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_sdl_query_info(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -skip_length_delimited_sdl_query_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_query_info(Rest2, 0, 0, F, F@_1, TrUserData). - -skip_group_sdl_query_info(Bin, _, Z2, FNum, F@_1, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_query_info(Rest, 0, Z2, FNum, F@_1, TrUserData). - -skip_32_sdl_query_info(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_query_info(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_64_sdl_query_info(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_query_info(Rest, Z1, Z2, F, F@_1, TrUserData). - -decode_msg_sdl_peer_info(Bin, TrUserData) -> dfp_read_field_def_sdl_peer_info(Bin, 0, 0, 0, id(<<>>, TrUserData), id(undefined, TrUserData), id(undefined, TrUserData), TrUserData). - -dfp_read_field_def_sdl_peer_info(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_peer_info_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_peer_info(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_peer_info_v4_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_peer_info(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_peer_info_v6_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_peer_info(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_peer_info{dst_mac = F@_1, v4_info = F@_2, v6_info = F@_3}; -dfp_read_field_def_sdl_peer_info(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_peer_info(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_peer_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_peer_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_sdl_peer_info(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_sdl_peer_info_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 18 -> d_field_sdl_peer_info_v4_info(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 26 -> d_field_sdl_peer_info_v6_info(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_peer_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_peer_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_peer_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_peer_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_peer_info(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_read_field_def_sdl_peer_info(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_peer_info{dst_mac = F@_1, v4_info = F@_2, v6_info = F@_3}. - -d_field_sdl_peer_info_dst_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_peer_info_dst_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_peer_info_dst_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_peer_info(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). - -d_field_sdl_peer_info_v4_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_peer_info_v4_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_peer_info_v4_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, F@_3, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_sdl_v4_info(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_sdl_peer_info(RestF, - 0, - 0, - F, - F@_1, - if Prev == undefined -> NewFValue; - true -> merge_msg_sdl_v4_info(Prev, NewFValue, TrUserData) - end, - F@_3, - TrUserData). - -d_field_sdl_peer_info_v6_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_peer_info_v6_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_peer_info_v6_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_sdl_v6_info(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_sdl_peer_info(RestF, - 0, - 0, - F, - F@_1, - F@_2, - if Prev == undefined -> NewFValue; - true -> merge_msg_sdl_v6_info(Prev, NewFValue, TrUserData) - end, - TrUserData). - -skip_varint_sdl_peer_info(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_peer_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_peer_info(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_peer_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_sdl_peer_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_peer_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_peer_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_peer_info(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_peer_info(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_peer_info(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_peer_info(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_peer_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_64_sdl_peer_info(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_peer_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -decode_msg_sdl_arp_request(Bin, TrUserData) -> dfp_read_field_def_sdl_arp_request(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_arp_request(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_arp_request_target_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_arp_request(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_arp_request_origin_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_arp_request(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_arp_request_context(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_arp_request(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_arp_request{target_ip = F@_1, origin_ip = F@_2, context = F@_3}; -dfp_read_field_def_sdl_arp_request(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_arp_request(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_arp_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_arp_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_sdl_arp_request(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_sdl_arp_request_target_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 16 -> d_field_sdl_arp_request_origin_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 26 -> d_field_sdl_arp_request_context(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_arp_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_arp_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_arp_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_arp_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_arp_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_read_field_def_sdl_arp_request(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_arp_request{target_ip = F@_1, origin_ip = F@_2, context = F@_3}. - -d_field_sdl_arp_request_target_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_arp_request_target_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_arp_request_target_ip(<<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}, - dfp_read_field_def_sdl_arp_request(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). - -d_field_sdl_arp_request_origin_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_arp_request_origin_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_arp_request_origin_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_arp_request(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). - -d_field_sdl_arp_request_context(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_arp_request_context(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_arp_request_context(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_arp_request(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). - -skip_varint_sdl_arp_request(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_arp_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_arp_request(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_arp_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_sdl_arp_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_arp_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_arp_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_arp_request(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_arp_request(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_arp_request(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_arp_request(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_arp_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_64_sdl_arp_request(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_arp_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -decode_msg_sdl_arp_response(Bin, TrUserData) -> dfp_read_field_def_sdl_arp_response(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_arp_response(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_arp_response_target_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_arp_response(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_arp_response_target_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_arp_response(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_arp_response_origin_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_arp_response(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_arp_response_context(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_arp_response(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_arp_response{target_ip = F@_1, target_mac = F@_2, origin_ip = F@_3, context = F@_4}; -dfp_read_field_def_sdl_arp_response(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_sdl_arp_response(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -dg_read_field_def_sdl_arp_response(<<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_arp_response(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dg_read_field_def_sdl_arp_response(<<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_arp_response_target_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 18 -> d_field_sdl_arp_response_target_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 24 -> d_field_sdl_arp_response_origin_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 34 -> d_field_sdl_arp_response_context(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_arp_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 1 -> skip_64_sdl_arp_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 2 -> skip_length_delimited_sdl_arp_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 3 -> skip_group_sdl_arp_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 5 -> skip_32_sdl_arp_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) - end - end; -dg_read_field_def_sdl_arp_response(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_arp_response{target_ip = F@_1, target_mac = F@_2, origin_ip = F@_3, context = F@_4}. - -d_field_sdl_arp_response_target_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_arp_response_target_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_arp_response_target_ip(<<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_arp_response(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). - -d_field_sdl_arp_response_target_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_arp_response_target_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_arp_response_target_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_arp_response(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). - -d_field_sdl_arp_response_origin_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_arp_response_origin_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_arp_response_origin_ip(<<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_arp_response(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). - -d_field_sdl_arp_response_context(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_arp_response_context(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_arp_response_context(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_arp_response(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). - -skip_varint_sdl_arp_response(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_sdl_arp_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_varint_sdl_arp_response(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_arp_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_length_delimited_sdl_arp_response(<<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_arp_response(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_length_delimited_sdl_arp_response(<<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_arp_response(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_group_sdl_arp_response(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_arp_response(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_32_sdl_arp_response(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_arp_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_64_sdl_arp_response(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_arp_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -decode_msg_sdl_policy_request(Bin, TrUserData) -> dfp_read_field_def_sdl_policy_request(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). - -dfp_read_field_def_sdl_policy_request(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_policy_request_src_identity_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_policy_request(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_policy_request_dst_identity_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_policy_request(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_policy_request_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_policy_request(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_policy_request{src_identity_id = F@_1, dst_identity_id = F@_2, version = F@_3}; -dfp_read_field_def_sdl_policy_request(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_policy_request(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_policy_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_policy_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_sdl_policy_request(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_sdl_policy_request_src_identity_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 16 -> d_field_sdl_policy_request_dst_identity_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 24 -> d_field_sdl_policy_request_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_policy_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_policy_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_policy_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_policy_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_policy_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_read_field_def_sdl_policy_request(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_policy_request{src_identity_id = F@_1, dst_identity_id = F@_2, version = F@_3}. - -d_field_sdl_policy_request_src_identity_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_policy_request_src_identity_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_policy_request_src_identity_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}, - dfp_read_field_def_sdl_policy_request(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). - -d_field_sdl_policy_request_dst_identity_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_policy_request_dst_identity_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_policy_request_dst_identity_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_policy_request(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). - -d_field_sdl_policy_request_version(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_policy_request_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_policy_request_version(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_policy_request(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). - -skip_varint_sdl_policy_request(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_policy_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_policy_request(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_policy_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_sdl_policy_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_policy_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_policy_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_policy_request(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_policy_request(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_policy_request(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_policy_request(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_policy_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_64_sdl_policy_request(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_policy_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -decode_msg_sdl_policy_response(Bin, TrUserData) -> dfp_read_field_def_sdl_policy_response(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_policy_response(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_policy_response_src_identity_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_policy_response(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_policy_response_dst_identity_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_policy_response(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_policy_response_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_policy_response(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_policy_response_rules(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_policy_response(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_policy_response{src_identity_id = F@_1, dst_identity_id = F@_2, version = F@_3, rules = F@_4}; -dfp_read_field_def_sdl_policy_response(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_sdl_policy_response(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -dg_read_field_def_sdl_policy_response(<<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_policy_response(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dg_read_field_def_sdl_policy_response(<<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_policy_response_src_identity_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 16 -> d_field_sdl_policy_response_dst_identity_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 24 -> d_field_sdl_policy_response_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 34 -> d_field_sdl_policy_response_rules(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_policy_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 1 -> skip_64_sdl_policy_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 2 -> skip_length_delimited_sdl_policy_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 3 -> skip_group_sdl_policy_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 5 -> skip_32_sdl_policy_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) - end - end; -dg_read_field_def_sdl_policy_response(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_policy_response{src_identity_id = F@_1, dst_identity_id = F@_2, version = F@_3, rules = F@_4}. - -d_field_sdl_policy_response_src_identity_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_policy_response_src_identity_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_policy_response_src_identity_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}, - dfp_read_field_def_sdl_policy_response(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). - -d_field_sdl_policy_response_dst_identity_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_policy_response_dst_identity_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_policy_response_dst_identity_id(<<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_policy_response(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). - -d_field_sdl_policy_response_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_policy_response_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_policy_response_version(<<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_policy_response(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). - -d_field_sdl_policy_response_rules(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_policy_response_rules(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_policy_response_rules(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_policy_response(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). - -skip_varint_sdl_policy_response(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_sdl_policy_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_varint_sdl_policy_response(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_policy_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_length_delimited_sdl_policy_response(<<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_policy_response(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_length_delimited_sdl_policy_response(<<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_policy_response(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_group_sdl_policy_response(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_policy_response(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_32_sdl_policy_response(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_policy_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_64_sdl_policy_response(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_policy_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -decode_msg_sdl_nat_changed_event(Bin, TrUserData) -> dfp_read_field_def_sdl_nat_changed_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), TrUserData). - -dfp_read_field_def_sdl_nat_changed_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_sdl_nat_changed_event_mac(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_sdl_nat_changed_event(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_sdl_nat_changed_event_ip(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_sdl_nat_changed_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #sdl_nat_changed_event{mac = F@_1, ip = F@_2}; -dfp_read_field_def_sdl_nat_changed_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_sdl_nat_changed_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -dg_read_field_def_sdl_nat_changed_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_nat_changed_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_sdl_nat_changed_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_sdl_nat_changed_event_mac(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 16 -> d_field_sdl_nat_changed_event_ip(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_nat_changed_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_sdl_nat_changed_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_sdl_nat_changed_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_sdl_nat_changed_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_sdl_nat_changed_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -dg_read_field_def_sdl_nat_changed_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #sdl_nat_changed_event{mac = F@_1, ip = F@_2}. - -d_field_sdl_nat_changed_event_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_sdl_nat_changed_event_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_sdl_nat_changed_event_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_nat_changed_event(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_sdl_nat_changed_event_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_sdl_nat_changed_event_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_sdl_nat_changed_event_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_nat_changed_event(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). - -skip_varint_sdl_nat_changed_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_sdl_nat_changed_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_sdl_nat_changed_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_nat_changed_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_length_delimited_sdl_nat_changed_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_sdl_nat_changed_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_sdl_nat_changed_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_nat_changed_event(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -skip_group_sdl_nat_changed_event(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_nat_changed_event(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -skip_32_sdl_nat_changed_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_nat_changed_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_64_sdl_nat_changed_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_sdl_nat_changed_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -decode_msg_sdl_send_register_event(Bin, TrUserData) -> dfp_read_field_def_sdl_send_register_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), id(undefined, TrUserData), TrUserData). - -dfp_read_field_def_sdl_send_register_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_sdl_send_register_event_dst_mac(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_sdl_send_register_event(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_sdl_send_register_event_nat_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_sdl_send_register_event(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_sdl_send_register_event_nat_port(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_sdl_send_register_event(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_sdl_send_register_event_nat_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_sdl_send_register_event(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_sdl_send_register_event_v6_info(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_sdl_send_register_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> #sdl_send_register_event{dst_mac = F@_1, nat_ip = F@_2, nat_port = F@_3, nat_type = F@_4, v6_info = F@_5}; -dfp_read_field_def_sdl_send_register_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_sdl_send_register_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -dg_read_field_def_sdl_send_register_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> - dg_read_field_def_sdl_send_register_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dg_read_field_def_sdl_send_register_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_sdl_send_register_event_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 16 -> d_field_sdl_send_register_event_nat_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 24 -> d_field_sdl_send_register_event_nat_port(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 32 -> d_field_sdl_send_register_event_nat_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 42 -> d_field_sdl_send_register_event_v6_info(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_send_register_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 1 -> skip_64_sdl_send_register_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 2 -> skip_length_delimited_sdl_send_register_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 3 -> skip_group_sdl_send_register_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 5 -> skip_32_sdl_send_register_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - end - end; -dg_read_field_def_sdl_send_register_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> #sdl_send_register_event{dst_mac = F@_1, nat_ip = F@_2, nat_port = F@_3, nat_type = F@_4, v6_info = F@_5}. - -d_field_sdl_send_register_event_dst_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_sdl_send_register_event_dst_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_sdl_send_register_event_dst_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_send_register_event(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData). - -d_field_sdl_send_register_event_nat_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_sdl_send_register_event_nat_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_sdl_send_register_event_nat_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_send_register_event(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData). - -d_field_sdl_send_register_event_nat_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_sdl_send_register_event_nat_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_sdl_send_register_event_nat_port(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_send_register_event(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, TrUserData). - -d_field_sdl_send_register_event_nat_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_sdl_send_register_event_nat_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_sdl_send_register_event_nat_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_send_register_event(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, TrUserData). - -d_field_sdl_send_register_event_v6_info(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_sdl_send_register_event_v6_info(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_sdl_send_register_event_v6_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_sdl_v6_info(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_sdl_send_register_event(RestF, - 0, - 0, - F, - F@_1, - F@_2, - F@_3, - F@_4, - if Prev == undefined -> NewFValue; - true -> merge_msg_sdl_v6_info(Prev, NewFValue, TrUserData) - end, - TrUserData). - -skip_varint_sdl_send_register_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> skip_varint_sdl_send_register_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -skip_varint_sdl_send_register_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_sdl_send_register_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_length_delimited_sdl_send_register_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> - skip_length_delimited_sdl_send_register_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -skip_length_delimited_sdl_send_register_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_send_register_event(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_group_sdl_send_register_event(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_send_register_event(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_32_sdl_send_register_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_sdl_send_register_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_64_sdl_send_register_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_sdl_send_register_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -decode_msg_sdl_network_shutdown_event(Bin, TrUserData) -> dfp_read_field_def_sdl_network_shutdown_event(Bin, 0, 0, 0, id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_network_shutdown_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_sdl_network_shutdown_event_message(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_sdl_network_shutdown_event(<<>>, 0, 0, _, F@_1, _) -> #sdl_network_shutdown_event{message = F@_1}; -dfp_read_field_def_sdl_network_shutdown_event(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_sdl_network_shutdown_event(Other, Z1, Z2, F, F@_1, TrUserData). - -dg_read_field_def_sdl_network_shutdown_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_network_shutdown_event(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -dg_read_field_def_sdl_network_shutdown_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_sdl_network_shutdown_event_message(Rest, 0, 0, 0, F@_1, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_network_shutdown_event(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 1 -> skip_64_sdl_network_shutdown_event(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 2 -> skip_length_delimited_sdl_network_shutdown_event(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 3 -> skip_group_sdl_network_shutdown_event(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 5 -> skip_32_sdl_network_shutdown_event(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) - end - end; -dg_read_field_def_sdl_network_shutdown_event(<<>>, 0, 0, _, F@_1, _) -> #sdl_network_shutdown_event{message = F@_1}. - -d_field_sdl_network_shutdown_event_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_sdl_network_shutdown_event_message(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_sdl_network_shutdown_event_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_network_shutdown_event(RestF, 0, 0, F, NewFValue, TrUserData). - -skip_varint_sdl_network_shutdown_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_sdl_network_shutdown_event(Rest, Z1, Z2, F, F@_1, TrUserData); -skip_varint_sdl_network_shutdown_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_network_shutdown_event(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_length_delimited_sdl_network_shutdown_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_sdl_network_shutdown_event(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -skip_length_delimited_sdl_network_shutdown_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_network_shutdown_event(Rest2, 0, 0, F, F@_1, TrUserData). - -skip_group_sdl_network_shutdown_event(Bin, _, Z2, FNum, F@_1, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_network_shutdown_event(Rest, 0, Z2, FNum, F@_1, TrUserData). - -skip_32_sdl_network_shutdown_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_network_shutdown_event(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_64_sdl_network_shutdown_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_sdl_network_shutdown_event(Rest, Z1, Z2, F, F@_1, TrUserData). - -decode_msg_sdl_stun_request(Bin, TrUserData) -> - dfp_read_field_def_sdl_stun_request(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(undefined, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_sdl_stun_request(<<10, 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(<<16, 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_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(<<32, 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_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(<<50, 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_v6_info(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(<<58, 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_session_token(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(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, _) -> #sdl_stun_request{client_id = F@_1, network_id = F@_2, mac = F@_3, ip = F@_4, nat_type = F@_5, v6_info = F@_6, session_token = F@_7}; -dfp_read_field_def_sdl_stun_request(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> dg_read_field_def_sdl_stun_request(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -dg_read_field_def_sdl_stun_request(<<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 < 32 - 7 -> - dg_read_field_def_sdl_stun_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); -dg_read_field_def_sdl_stun_request(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> 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); - 16 -> 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_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 32 -> 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_nat_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 50 -> d_field_sdl_stun_request_v6_info(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 58 -> d_field_sdl_stun_request_session_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_stun_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 1 -> skip_64_sdl_stun_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 2 -> skip_length_delimited_sdl_stun_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 3 -> skip_group_sdl_stun_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); - 5 -> skip_32_sdl_stun_request(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) - end - end; -dg_read_field_def_sdl_stun_request(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, _) -> #sdl_stun_request{client_id = F@_1, network_id = F@_2, mac = F@_3, ip = F@_4, nat_type = F@_5, v6_info = F@_6, session_token = F@_7}. - -d_field_sdl_stun_request_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, TrUserData) when N < 57 -> - d_field_sdl_stun_request_client_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_client_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_stun_request(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -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(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_stun_request(RestF, 0, 0, F, F@_1, NewFValue, 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); -d_field_sdl_stun_request_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, F@_7, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = 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). - -d_field_sdl_stun_request_ip(<<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_ip(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_ip(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, F@_6, F@_7, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_stun_request(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, F@_6, F@_7, TrUserData). - -d_field_sdl_stun_request_nat_type(<<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_nat_type(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_nat_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, F@_6, F@_7, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_stun_request(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, F@_6, F@_7, TrUserData). - -d_field_sdl_stun_request_v6_info(<<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_v6_info(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_v6_info(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, Prev, F@_7, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_sdl_v6_info(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_sdl_stun_request(RestF, - 0, - 0, - F, - F@_1, - F@_2, - F@_3, - F@_4, - F@_5, - if Prev == undefined -> NewFValue; - true -> merge_msg_sdl_v6_info(Prev, NewFValue, TrUserData) - end, - F@_7, - TrUserData). - -d_field_sdl_stun_request_session_token(<<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_session_token(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_session_token(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = 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, F@_3, F@_4, F@_5, F@_6, NewFValue, TrUserData). - -skip_varint_sdl_stun_request(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> skip_varint_sdl_stun_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); -skip_varint_sdl_stun_request(<<0:1, _:7, Rest/binary>>, 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(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -skip_length_delimited_sdl_stun_request(<<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 -> - skip_length_delimited_sdl_stun_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData); -skip_length_delimited_sdl_stun_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_stun_request(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -skip_group_sdl_stun_request(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_stun_request(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -skip_32_sdl_stun_request(<<_:32, Rest/binary>>, 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(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -skip_64_sdl_stun_request(<<_:64, Rest/binary>>, 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(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, TrUserData). - -decode_msg_sdl_stun_reply(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Bin, 0, 0, 0, TrUserData). - -dfp_read_field_def_sdl_stun_reply(<<>>, 0, 0, _, _) -> #sdl_stun_reply{}; -dfp_read_field_def_sdl_stun_reply(Other, Z1, Z2, F, TrUserData) -> dg_read_field_def_sdl_stun_reply(Other, Z1, Z2, F, TrUserData). - -dg_read_field_def_sdl_stun_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_stun_reply(Rest, N + 7, X bsl N + Acc, F, TrUserData); -dg_read_field_def_sdl_stun_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, TrUserData) -> - Key = X bsl N + Acc, - case Key band 7 of - 0 -> skip_varint_sdl_stun_reply(Rest, 0, 0, Key bsr 3, TrUserData); - 1 -> skip_64_sdl_stun_reply(Rest, 0, 0, Key bsr 3, TrUserData); - 2 -> skip_length_delimited_sdl_stun_reply(Rest, 0, 0, Key bsr 3, TrUserData); - 3 -> skip_group_sdl_stun_reply(Rest, 0, 0, Key bsr 3, TrUserData); - 5 -> skip_32_sdl_stun_reply(Rest, 0, 0, Key bsr 3, TrUserData) - end; -dg_read_field_def_sdl_stun_reply(<<>>, 0, 0, _, _) -> #sdl_stun_reply{}. - -skip_varint_sdl_stun_reply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, TrUserData) -> skip_varint_sdl_stun_reply(Rest, Z1, Z2, F, TrUserData); -skip_varint_sdl_stun_reply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, TrUserData). - -skip_length_delimited_sdl_stun_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, TrUserData) when N < 57 -> skip_length_delimited_sdl_stun_reply(Rest, N + 7, X bsl N + Acc, F, TrUserData); -skip_length_delimited_sdl_stun_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_stun_reply(Rest2, 0, 0, F, TrUserData). - -skip_group_sdl_stun_reply(Bin, _, Z2, FNum, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_stun_reply(Rest, 0, Z2, FNum, TrUserData). - -skip_32_sdl_stun_reply(<<_:32, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, TrUserData). - -skip_64_sdl_stun_reply(<<_:64, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_sdl_stun_reply(Rest, Z1, Z2, F, 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), id(<<>>, TrUserData), id(0, 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, F@_7, F@_8, TrUserData) -> d_field_sdl_data_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_data(<<18, 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_data_src_mac(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_data(<<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_data_dst_mac(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_data(<<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_data_is_p2p(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_data(<<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_data_ttl(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_data(<<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_data_data(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_data(<<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_data_session_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_data(<<64, 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_data_identity_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_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _) -> #sdl_data{network_id = F@_1, src_mac = F@_2, dst_mac = F@_3, is_p2p = F@_4, ttl = F@_5, data = F@_6, session_token = F@_7, identity_id = F@_8}; -dfp_read_field_def_sdl_data(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_data(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_data(<<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_data(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_data(<<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, - 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, F@_7, F@_8, TrUserData); - 18 -> d_field_sdl_data_src_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); - 26 -> d_field_sdl_data_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); - 32 -> d_field_sdl_data_is_p2p(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_data_ttl(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); - 50 -> d_field_sdl_data_data(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_data_session_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); - 64 -> d_field_sdl_data_identity_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_data(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_data(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_data(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_data(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_data(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; -dg_read_field_def_sdl_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _) -> #sdl_data{network_id = F@_1, src_mac = F@_2, dst_mac = F@_3, is_p2p = F@_4, ttl = F@_5, data = F@_6, session_token = F@_7, identity_id = F@_8}. - -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, F@_7, F@_8, 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, F@_7, F@_8, 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, F@_7, F@_8, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, 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, F@_7, F@_8, 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, F@_7, F@_8, TrUserData); -d_field_sdl_data_src_mac(<<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} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -d_field_sdl_data_dst_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_data_dst_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_data_dst_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, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -d_field_sdl_data_is_p2p(<<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_data_is_p2p(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_data_is_p2p(<<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 =/= 0, TrUserData), Rest}, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, F@_6, F@_7, F@_8, TrUserData). - -d_field_sdl_data_ttl(<<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_data_ttl(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_data_ttl(<<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} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, F@_6, F@_7, F@_8, TrUserData). - -d_field_sdl_data_data(<<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_data_data(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_data_data(<<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} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, NewFValue, F@_7, F@_8, TrUserData). - -d_field_sdl_data_session_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_data_session_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_data_session_token(<<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, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, NewFValue, F@_8, TrUserData). - -d_field_sdl_data_identity_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_data_identity_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_data_identity_id(<<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} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, NewFValue, TrUserData). - -skip_varint_sdl_data(<<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_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData); -skip_varint_sdl_data(<<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_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -skip_length_delimited_sdl_data(<<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_data(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_data(<<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/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_data(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -skip_group_sdl_data(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), - dfp_read_field_def_sdl_data(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -skip_32_sdl_data(<<_: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_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -skip_64_sdl_data(<<_: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_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, TrUserData). - -decode_msg_sdl_stun_probe(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). - -dfp_read_field_def_sdl_stun_probe(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_probe_cookie(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_stun_probe(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_probe_attr(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_stun_probe(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_sdl_stun_probe_step(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_sdl_stun_probe(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_stun_probe{cookie = F@_1, attr = F@_2, step = F@_3}; -dfp_read_field_def_sdl_stun_probe(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_stun_probe(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_stun_probe(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_stun_probe(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_sdl_stun_probe(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_sdl_stun_probe_cookie(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 16 -> d_field_sdl_stun_probe_attr(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 24 -> d_field_sdl_stun_probe_step(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_stun_probe(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_read_field_def_sdl_stun_probe(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #sdl_stun_probe{cookie = F@_1, attr = F@_2, step = F@_3}. - -d_field_sdl_stun_probe_cookie(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_probe_cookie(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_stun_probe_cookie(<<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}, - dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). - -d_field_sdl_stun_probe_attr(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_probe_attr(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_stun_probe_attr(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). - -d_field_sdl_stun_probe_step(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_stun_probe_step(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_stun_probe_step(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_sdl_stun_probe(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). - -skip_varint_sdl_stun_probe(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_stun_probe(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_sdl_stun_probe(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_stun_probe(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_stun_probe(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_stun_probe(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_stun_probe(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_stun_probe(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_stun_probe(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_64_sdl_stun_probe(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_stun_probe(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -decode_msg_sdl_stun_probe_reply(Bin, TrUserData) -> dfp_read_field_def_sdl_stun_probe_reply(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). - -dfp_read_field_def_sdl_stun_probe_reply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_cookie(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_stun_probe_reply(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_step(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_stun_probe_reply(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_port(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_stun_probe_reply(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_sdl_stun_probe_reply_ip(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_sdl_stun_probe_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_stun_probe_reply{cookie = F@_1, step = F@_2, port = F@_3, ip = F@_4}; -dfp_read_field_def_sdl_stun_probe_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_sdl_stun_probe_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -dg_read_field_def_sdl_stun_probe_reply(<<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_stun_probe_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dg_read_field_def_sdl_stun_probe_reply(<<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_stun_probe_reply_cookie(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 16 -> d_field_sdl_stun_probe_reply_step(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 24 -> d_field_sdl_stun_probe_reply_port(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 32 -> d_field_sdl_stun_probe_reply_ip(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 1 -> skip_64_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 2 -> skip_length_delimited_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 3 -> skip_group_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 5 -> skip_32_sdl_stun_probe_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) - end - end; -dg_read_field_def_sdl_stun_probe_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #sdl_stun_probe_reply{cookie = F@_1, step = F@_2, port = F@_3, ip = F@_4}. - -d_field_sdl_stun_probe_reply_cookie(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_cookie(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_stun_probe_reply_cookie(<<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_stun_probe_reply(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). - -d_field_sdl_stun_probe_reply_step(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_step(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_stun_probe_reply_step(<<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_stun_probe_reply(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). - -d_field_sdl_stun_probe_reply_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_stun_probe_reply_port(<<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_stun_probe_reply(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). - -d_field_sdl_stun_probe_reply_ip(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_sdl_stun_probe_reply_ip(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_sdl_stun_probe_reply_ip(<<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_stun_probe_reply(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). - -skip_varint_sdl_stun_probe_reply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_sdl_stun_probe_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_varint_sdl_stun_probe_reply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_stun_probe_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_length_delimited_sdl_stun_probe_reply(<<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_stun_probe_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_length_delimited_sdl_stun_probe_reply(<<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_stun_probe_reply(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_group_sdl_stun_probe_reply(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_stun_probe_reply(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_32_sdl_stun_probe_reply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_stun_probe_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_64_sdl_stun_probe_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_sdl_stun_probe_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, 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). - -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(<<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(<<>>, 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(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_register(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_register(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_register(Rest, N + 7, X bsl N + Acc, F, 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, - case Key of - 8 -> 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); - 26 -> d_field_sdl_register_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_register(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_register(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_register(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_register(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_register(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_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}. - -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) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - 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(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). - -d_field_sdl_register_dst_mac(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_sdl_register_dst_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_register_dst_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). - -skip_varint_sdl_register(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_register(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_register(<<0:1, _:7, 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_length_delimited_sdl_register(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_register(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_register(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_register(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_register(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_register(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_register(<<_:32, 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). - -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(<<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(<<>>, 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(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_sdl_register_ack(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_sdl_register_ack(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_sdl_register_ack(Rest, N + 7, X bsl N + Acc, F, 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, - case Key of - 8 -> 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); - 26 -> d_field_sdl_register_ack_dst_mac(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_sdl_register_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_sdl_register_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_sdl_register_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_sdl_register_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_sdl_register_ack(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_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}. - -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) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - 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(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register_ack(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). - -d_field_sdl_register_ack_dst_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_dst_mac(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_sdl_register_ack_dst_mac(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_sdl_register_ack(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). - -skip_varint_sdl_register_ack(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_sdl_register_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_sdl_register_ack(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_register_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_sdl_register_ack(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_sdl_register_ack(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_sdl_register_ack(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_sdl_register_ack(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). - -skip_group_sdl_register_ack(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_sdl_register_ack(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). - -skip_32_sdl_register_ack(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_register_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_64_sdl_register_ack(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_sdl_register_ack(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -read_group(Bin, FieldNum) -> - {NumBytes, EndTagLen} = read_gr_b(Bin, 0, 0, 0, 0, FieldNum), - <> = Bin, - {Group, Rest}. - -%% Like skipping over fields, but record the total length, -%% Each field is <(FieldNum bsl 3) bor FieldType> ++ -%% Record the length because varints may be non-optimally encoded. -%% -%% Groups can be nested, but assume the same FieldNum cannot be nested -%% because group field numbers are shared with the rest of the fields -%% numbers. Thus we can search just for an group-end with the same -%% field number. -%% -%% (The only time the same group field number could occur would -%% be in a nested sub message, but then it would be inside a -%% length-delimited entry, which we skip-read by length.) -read_gr_b(<<1:1, X:7, Tl/binary>>, N, Acc, NumBytes, TagLen, FieldNum) - when N < (32-7) -> - read_gr_b(Tl, N+7, X bsl N + Acc, NumBytes, TagLen+1, FieldNum); -read_gr_b(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, TagLen, - FieldNum) -> - Key = X bsl N + Acc, - TagLen1 = TagLen + 1, - case {Key bsr 3, Key band 7} of - {FieldNum, 4} -> % 4 = group_end - {NumBytes, TagLen1}; - {_, 0} -> % 0 = varint - read_gr_vi(Tl, 0, NumBytes + TagLen1, FieldNum); - {_, 1} -> % 1 = bits64 - <<_:64, Tl2/binary>> = Tl, - read_gr_b(Tl2, 0, 0, NumBytes + TagLen1 + 8, 0, FieldNum); - {_, 2} -> % 2 = length_delimited - read_gr_ld(Tl, 0, 0, NumBytes + TagLen1, FieldNum); - {_, 3} -> % 3 = group_start - read_gr_b(Tl, 0, 0, NumBytes + TagLen1, 0, FieldNum); - {_, 4} -> % 4 = group_end - read_gr_b(Tl, 0, 0, NumBytes + TagLen1, 0, FieldNum); - {_, 5} -> % 5 = bits32 - <<_:32, Tl2/binary>> = Tl, - read_gr_b(Tl2, 0, 0, NumBytes + TagLen1 + 4, 0, FieldNum) - end. - -read_gr_vi(<<1:1, _:7, Tl/binary>>, N, NumBytes, FieldNum) - when N < (64-7) -> - read_gr_vi(Tl, N+7, NumBytes+1, FieldNum); -read_gr_vi(<<0:1, _:7, Tl/binary>>, _, NumBytes, FieldNum) -> - read_gr_b(Tl, 0, 0, NumBytes+1, 0, FieldNum). - -read_gr_ld(<<1:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) - when N < (64-7) -> - read_gr_ld(Tl, N+7, X bsl N + Acc, NumBytes+1, FieldNum); -read_gr_ld(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) -> - Len = X bsl N + Acc, - NumBytes1 = NumBytes + 1, - <<_:Len/binary, Tl2/binary>> = Tl, - read_gr_b(Tl2, 0, 0, NumBytes1 + Len, 0, FieldNum). - -merge_msgs(Prev, New) when element(1, Prev) =:= element(1, New) -> merge_msgs(Prev, New, element(1, Prev), []). - -merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> merge_msgs(Prev, New, MsgName, []); -merge_msgs(Prev, New, Opts) when element(1, Prev) =:= element(1, New), is_list(Opts) -> merge_msgs(Prev, New, element(1, Prev), Opts). - -merge_msgs(Prev, New, MsgName, Opts) -> - TrUserData = proplists:get_value(user_data, Opts), - case MsgName of - sdl_v4_info -> merge_msg_sdl_v4_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_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_nak -> merge_msg_sdl_register_super_nak(Prev, New, TrUserData); - sdl_query_info -> merge_msg_sdl_query_info(Prev, New, TrUserData); - sdl_peer_info -> merge_msg_sdl_peer_info(Prev, New, TrUserData); - sdl_arp_request -> merge_msg_sdl_arp_request(Prev, New, TrUserData); - sdl_arp_response -> merge_msg_sdl_arp_response(Prev, New, TrUserData); - sdl_policy_request -> merge_msg_sdl_policy_request(Prev, New, TrUserData); - sdl_policy_response -> merge_msg_sdl_policy_response(Prev, New, TrUserData); - sdl_nat_changed_event -> merge_msg_sdl_nat_changed_event(Prev, New, TrUserData); - sdl_send_register_event -> merge_msg_sdl_send_register_event(Prev, New, TrUserData); - sdl_network_shutdown_event -> merge_msg_sdl_network_shutdown_event(Prev, New, TrUserData); - sdl_stun_request -> merge_msg_sdl_stun_request(Prev, New, TrUserData); - sdl_stun_reply -> merge_msg_sdl_stun_reply(Prev, New, TrUserData); - sdl_data -> merge_msg_sdl_data(Prev, New, TrUserData); - sdl_stun_probe -> merge_msg_sdl_stun_probe(Prev, New, TrUserData); - sdl_stun_probe_reply -> merge_msg_sdl_stun_probe_reply(Prev, New, TrUserData); - sdl_register -> merge_msg_sdl_register(Prev, New, TrUserData); - sdl_register_ack -> merge_msg_sdl_register_ack(Prev, New, TrUserData) - end. - --compile({nowarn_unused_function,merge_msg_sdl_v4_info/3}). -merge_msg_sdl_v4_info(#sdl_v4_info{port = PFport, v4 = PFv4, nat_type = PFnat_type}, #sdl_v4_info{port = NFport, v4 = NFv4, nat_type = NFnat_type}, _) -> - #sdl_v4_info{port = - if NFport =:= undefined -> PFport; - true -> NFport - end, - v4 = - if NFv4 =:= undefined -> PFv4; - true -> NFv4 - end, - nat_type = - if NFnat_type =:= undefined -> PFnat_type; - true -> NFnat_type - end}. - --compile({nowarn_unused_function,merge_msg_sdl_v6_info/3}). -merge_msg_sdl_v6_info(#sdl_v6_info{port = PFport, v6 = PFv6}, #sdl_v6_info{port = NFport, v6 = NFv6}, _) -> - #sdl_v6_info{port = - if NFport =:= undefined -> PFport; - true -> NFport - end, - v6 = - if NFv6 =:= undefined -> PFv6; - true -> NFv6 - 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_register_super/3}). -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{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 = - if NFclient_id =:= undefined -> PFclient_id; - true -> NFclient_id - end, - network_id = - if NFnetwork_id =:= undefined -> PFnetwork_id; - true -> NFnetwork_id - end, - mac = - if NFmac =:= undefined -> PFmac; - true -> NFmac - end, - ip = - if NFip =:= undefined -> PFip; - true -> NFip - end, - mask_len = - if NFmask_len =:= undefined -> PFmask_len; - true -> NFmask_len - end, - hostname = - if NFhostname =:= undefined -> PFhostname; - true -> NFhostname - end, - pub_key = - if NFpub_key =:= undefined -> PFpub_key; - true -> NFpub_key - end, - access_token = - if NFaccess_token =:= undefined -> PFaccess_token; - true -> NFaccess_token - end}. - --compile({nowarn_unused_function,merge_msg_sdl_register_super_ack/3}). -merge_msg_sdl_register_super_ack(#sdl_register_super_ack{algorithm = PFalgorithm, key = PFkey, region_id = PFregion_id, session_token = PFsession_token}, - #sdl_register_super_ack{algorithm = NFalgorithm, key = NFkey, region_id = NFregion_id, session_token = NFsession_token}, _) -> - #sdl_register_super_ack{algorithm = - if NFalgorithm =:= undefined -> PFalgorithm; - true -> NFalgorithm - end, - key = - if NFkey =:= undefined -> PFkey; - true -> NFkey - end, - region_id = - if NFregion_id =:= undefined -> PFregion_id; - true -> NFregion_id - end, - session_token = - if NFsession_token =:= undefined -> PFsession_token; - true -> NFsession_token - end}. - --compile({nowarn_unused_function,merge_msg_sdl_register_super_nak/3}). -merge_msg_sdl_register_super_nak(#sdl_register_super_nak{error_code = PFerror_code, error_message = PFerror_message}, #sdl_register_super_nak{error_code = NFerror_code, error_message = NFerror_message}, _) -> - #sdl_register_super_nak{error_code = - if NFerror_code =:= undefined -> PFerror_code; - true -> NFerror_code - end, - error_message = - if NFerror_message =:= undefined -> PFerror_message; - true -> NFerror_message - end}. - --compile({nowarn_unused_function,merge_msg_sdl_query_info/3}). -merge_msg_sdl_query_info(#sdl_query_info{dst_mac = PFdst_mac}, #sdl_query_info{dst_mac = NFdst_mac}, _) -> - #sdl_query_info{dst_mac = - if NFdst_mac =:= undefined -> PFdst_mac; - true -> NFdst_mac - end}. - --compile({nowarn_unused_function,merge_msg_sdl_peer_info/3}). -merge_msg_sdl_peer_info(#sdl_peer_info{dst_mac = PFdst_mac, v4_info = PFv4_info, v6_info = PFv6_info}, #sdl_peer_info{dst_mac = NFdst_mac, v4_info = NFv4_info, v6_info = NFv6_info}, TrUserData) -> - #sdl_peer_info{dst_mac = - if NFdst_mac =:= undefined -> PFdst_mac; - true -> NFdst_mac - end, - v4_info = - if PFv4_info /= undefined, NFv4_info /= undefined -> merge_msg_sdl_v4_info(PFv4_info, NFv4_info, TrUserData); - PFv4_info == undefined -> NFv4_info; - NFv4_info == undefined -> PFv4_info - end, - v6_info = - if PFv6_info /= undefined, NFv6_info /= undefined -> merge_msg_sdl_v6_info(PFv6_info, NFv6_info, TrUserData); - PFv6_info == undefined -> NFv6_info; - NFv6_info == undefined -> PFv6_info - end}. - --compile({nowarn_unused_function,merge_msg_sdl_arp_request/3}). -merge_msg_sdl_arp_request(#sdl_arp_request{target_ip = PFtarget_ip, origin_ip = PForigin_ip, context = PFcontext}, #sdl_arp_request{target_ip = NFtarget_ip, origin_ip = NForigin_ip, context = NFcontext}, _) -> - #sdl_arp_request{target_ip = - if NFtarget_ip =:= undefined -> PFtarget_ip; - true -> NFtarget_ip - end, - origin_ip = - if NForigin_ip =:= undefined -> PForigin_ip; - true -> NForigin_ip - end, - context = - if NFcontext =:= undefined -> PFcontext; - true -> NFcontext - end}. - --compile({nowarn_unused_function,merge_msg_sdl_arp_response/3}). -merge_msg_sdl_arp_response(#sdl_arp_response{target_ip = PFtarget_ip, target_mac = PFtarget_mac, origin_ip = PForigin_ip, context = PFcontext}, - #sdl_arp_response{target_ip = NFtarget_ip, target_mac = NFtarget_mac, origin_ip = NForigin_ip, context = NFcontext}, _) -> - #sdl_arp_response{target_ip = - if NFtarget_ip =:= undefined -> PFtarget_ip; - true -> NFtarget_ip - end, - target_mac = - if NFtarget_mac =:= undefined -> PFtarget_mac; - true -> NFtarget_mac - end, - origin_ip = - if NForigin_ip =:= undefined -> PForigin_ip; - true -> NForigin_ip - end, - context = - if NFcontext =:= undefined -> PFcontext; - true -> NFcontext - end}. - --compile({nowarn_unused_function,merge_msg_sdl_policy_request/3}). -merge_msg_sdl_policy_request(#sdl_policy_request{src_identity_id = PFsrc_identity_id, dst_identity_id = PFdst_identity_id, version = PFversion}, - #sdl_policy_request{src_identity_id = NFsrc_identity_id, dst_identity_id = NFdst_identity_id, version = NFversion}, _) -> - #sdl_policy_request{src_identity_id = - if NFsrc_identity_id =:= undefined -> PFsrc_identity_id; - true -> NFsrc_identity_id - end, - dst_identity_id = - if NFdst_identity_id =:= undefined -> PFdst_identity_id; - true -> NFdst_identity_id - end, - version = - if NFversion =:= undefined -> PFversion; - true -> NFversion - end}. - --compile({nowarn_unused_function,merge_msg_sdl_policy_response/3}). -merge_msg_sdl_policy_response(#sdl_policy_response{src_identity_id = PFsrc_identity_id, dst_identity_id = PFdst_identity_id, version = PFversion, rules = PFrules}, - #sdl_policy_response{src_identity_id = NFsrc_identity_id, dst_identity_id = NFdst_identity_id, version = NFversion, rules = NFrules}, _) -> - #sdl_policy_response{src_identity_id = - if NFsrc_identity_id =:= undefined -> PFsrc_identity_id; - true -> NFsrc_identity_id - end, - dst_identity_id = - if NFdst_identity_id =:= undefined -> PFdst_identity_id; - true -> NFdst_identity_id - end, - version = - if NFversion =:= undefined -> PFversion; - true -> NFversion - end, - rules = - if NFrules =:= undefined -> PFrules; - true -> NFrules - end}. - --compile({nowarn_unused_function,merge_msg_sdl_nat_changed_event/3}). -merge_msg_sdl_nat_changed_event(#sdl_nat_changed_event{mac = PFmac, ip = PFip}, #sdl_nat_changed_event{mac = NFmac, ip = NFip}, _) -> - #sdl_nat_changed_event{mac = - if NFmac =:= undefined -> PFmac; - true -> NFmac - end, - ip = - if NFip =:= undefined -> PFip; - true -> NFip - end}. - --compile({nowarn_unused_function,merge_msg_sdl_send_register_event/3}). -merge_msg_sdl_send_register_event(#sdl_send_register_event{dst_mac = PFdst_mac, nat_ip = PFnat_ip, nat_port = PFnat_port, nat_type = PFnat_type, v6_info = PFv6_info}, - #sdl_send_register_event{dst_mac = NFdst_mac, nat_ip = NFnat_ip, nat_port = NFnat_port, nat_type = NFnat_type, v6_info = NFv6_info}, TrUserData) -> - #sdl_send_register_event{dst_mac = - if NFdst_mac =:= undefined -> PFdst_mac; - true -> NFdst_mac - end, - nat_ip = - if NFnat_ip =:= undefined -> PFnat_ip; - true -> NFnat_ip - end, - nat_port = - if NFnat_port =:= undefined -> PFnat_port; - true -> NFnat_port - end, - nat_type = - if NFnat_type =:= undefined -> PFnat_type; - true -> NFnat_type - end, - v6_info = - if PFv6_info /= undefined, NFv6_info /= undefined -> merge_msg_sdl_v6_info(PFv6_info, NFv6_info, TrUserData); - PFv6_info == undefined -> NFv6_info; - NFv6_info == undefined -> PFv6_info - end}. - --compile({nowarn_unused_function,merge_msg_sdl_network_shutdown_event/3}). -merge_msg_sdl_network_shutdown_event(#sdl_network_shutdown_event{message = PFmessage}, #sdl_network_shutdown_event{message = NFmessage}, _) -> - #sdl_network_shutdown_event{message = - if NFmessage =:= undefined -> PFmessage; - true -> NFmessage - end}. - --compile({nowarn_unused_function,merge_msg_sdl_stun_request/3}). -merge_msg_sdl_stun_request(#sdl_stun_request{client_id = PFclient_id, network_id = PFnetwork_id, mac = PFmac, ip = PFip, nat_type = PFnat_type, v6_info = PFv6_info, session_token = PFsession_token}, - #sdl_stun_request{client_id = NFclient_id, network_id = NFnetwork_id, mac = NFmac, ip = NFip, nat_type = NFnat_type, v6_info = NFv6_info, session_token = NFsession_token}, TrUserData) -> - #sdl_stun_request{client_id = - if NFclient_id =:= undefined -> PFclient_id; - true -> NFclient_id - end, - network_id = - if NFnetwork_id =:= undefined -> PFnetwork_id; - true -> NFnetwork_id - end, - mac = - if NFmac =:= undefined -> PFmac; - true -> NFmac - end, - ip = - if NFip =:= undefined -> PFip; - true -> NFip - end, - nat_type = - if NFnat_type =:= undefined -> PFnat_type; - true -> NFnat_type - end, - v6_info = - if PFv6_info /= undefined, NFv6_info /= undefined -> merge_msg_sdl_v6_info(PFv6_info, NFv6_info, TrUserData); - PFv6_info == undefined -> NFv6_info; - NFv6_info == undefined -> PFv6_info - end, - session_token = - if NFsession_token =:= undefined -> PFsession_token; - true -> NFsession_token - end}. - --compile({nowarn_unused_function,merge_msg_sdl_stun_reply/3}). -merge_msg_sdl_stun_reply(_Prev, New, _TrUserData) -> New. - --compile({nowarn_unused_function,merge_msg_sdl_data/3}). -merge_msg_sdl_data(#sdl_data{network_id = PFnetwork_id, src_mac = PFsrc_mac, dst_mac = PFdst_mac, is_p2p = PFis_p2p, ttl = PFttl, data = PFdata, session_token = PFsession_token, identity_id = PFidentity_id}, - #sdl_data{network_id = NFnetwork_id, src_mac = NFsrc_mac, dst_mac = NFdst_mac, is_p2p = NFis_p2p, ttl = NFttl, data = NFdata, session_token = NFsession_token, identity_id = NFidentity_id}, _) -> - #sdl_data{network_id = - if NFnetwork_id =:= undefined -> PFnetwork_id; - true -> NFnetwork_id - end, - src_mac = - if NFsrc_mac =:= undefined -> PFsrc_mac; - true -> NFsrc_mac - end, - dst_mac = - if NFdst_mac =:= undefined -> PFdst_mac; - true -> NFdst_mac - end, - is_p2p = - if NFis_p2p =:= undefined -> PFis_p2p; - true -> NFis_p2p - end, - ttl = - if NFttl =:= undefined -> PFttl; - true -> NFttl - end, - data = - if NFdata =:= undefined -> PFdata; - true -> NFdata - end, - session_token = - if NFsession_token =:= undefined -> PFsession_token; - true -> NFsession_token - end, - identity_id = - if NFidentity_id =:= undefined -> PFidentity_id; - true -> NFidentity_id - end}. - --compile({nowarn_unused_function,merge_msg_sdl_stun_probe/3}). -merge_msg_sdl_stun_probe(#sdl_stun_probe{cookie = PFcookie, attr = PFattr, step = PFstep}, #sdl_stun_probe{cookie = NFcookie, attr = NFattr, step = NFstep}, _) -> - #sdl_stun_probe{cookie = - if NFcookie =:= undefined -> PFcookie; - true -> NFcookie - end, - attr = - if NFattr =:= undefined -> PFattr; - true -> NFattr - end, - step = - if NFstep =:= undefined -> PFstep; - true -> NFstep - end}. - --compile({nowarn_unused_function,merge_msg_sdl_stun_probe_reply/3}). -merge_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = PFcookie, step = PFstep, port = PFport, ip = PFip}, #sdl_stun_probe_reply{cookie = NFcookie, step = NFstep, port = NFport, ip = NFip}, _) -> - #sdl_stun_probe_reply{cookie = - if NFcookie =:= undefined -> PFcookie; - true -> NFcookie - end, - step = - if NFstep =:= undefined -> PFstep; - true -> NFstep - end, - port = - if NFport =:= undefined -> PFport; - true -> NFport - end, - ip = - if NFip =:= undefined -> PFip; - true -> NFip - end}. - --compile({nowarn_unused_function,merge_msg_sdl_register/3}). -merge_msg_sdl_register(#sdl_register{network_id = PFnetwork_id, src_mac = PFsrc_mac, dst_mac = PFdst_mac}, #sdl_register{network_id = NFnetwork_id, src_mac = NFsrc_mac, dst_mac = NFdst_mac}, _) -> - #sdl_register{network_id = - if NFnetwork_id =:= undefined -> PFnetwork_id; - true -> NFnetwork_id - end, - src_mac = - if NFsrc_mac =:= undefined -> PFsrc_mac; - true -> NFsrc_mac - end, - dst_mac = - if NFdst_mac =:= undefined -> PFdst_mac; - true -> NFdst_mac - end}. - --compile({nowarn_unused_function,merge_msg_sdl_register_ack/3}). -merge_msg_sdl_register_ack(#sdl_register_ack{network_id = PFnetwork_id, src_mac = PFsrc_mac, dst_mac = PFdst_mac}, #sdl_register_ack{network_id = NFnetwork_id, src_mac = NFsrc_mac, dst_mac = NFdst_mac}, _) -> - #sdl_register_ack{network_id = - if NFnetwork_id =:= undefined -> PFnetwork_id; - true -> NFnetwork_id - end, - src_mac = - if NFsrc_mac =:= undefined -> PFsrc_mac; - true -> NFsrc_mac - end, - dst_mac = - if NFdst_mac =:= undefined -> PFdst_mac; - true -> NFdst_mac - end}. - - -verify_msg(Msg) when tuple_size(Msg) >= 1 -> verify_msg(Msg, element(1, Msg), []); -verify_msg(X) -> mk_type_error(not_a_known_message, X, []). - -verify_msg(Msg, MsgName) when is_atom(MsgName) -> verify_msg(Msg, MsgName, []); -verify_msg(Msg, Opts) when tuple_size(Msg) >= 1 -> verify_msg(Msg, element(1, Msg), Opts); -verify_msg(X, _Opts) -> mk_type_error(not_a_known_message, X, []). - -verify_msg(Msg, MsgName, Opts) -> - TrUserData = proplists:get_value(user_data, Opts), - case MsgName of - sdl_v4_info -> v_msg_sdl_v4_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_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_nak -> v_msg_sdl_register_super_nak(Msg, [MsgName], TrUserData); - sdl_query_info -> v_msg_sdl_query_info(Msg, [MsgName], TrUserData); - sdl_peer_info -> v_msg_sdl_peer_info(Msg, [MsgName], TrUserData); - sdl_arp_request -> v_msg_sdl_arp_request(Msg, [MsgName], TrUserData); - sdl_arp_response -> v_msg_sdl_arp_response(Msg, [MsgName], TrUserData); - sdl_policy_request -> v_msg_sdl_policy_request(Msg, [MsgName], TrUserData); - sdl_policy_response -> v_msg_sdl_policy_response(Msg, [MsgName], TrUserData); - sdl_nat_changed_event -> v_msg_sdl_nat_changed_event(Msg, [MsgName], TrUserData); - sdl_send_register_event -> v_msg_sdl_send_register_event(Msg, [MsgName], TrUserData); - sdl_network_shutdown_event -> v_msg_sdl_network_shutdown_event(Msg, [MsgName], TrUserData); - sdl_stun_request -> v_msg_sdl_stun_request(Msg, [MsgName], TrUserData); - sdl_stun_reply -> v_msg_sdl_stun_reply(Msg, [MsgName], TrUserData); - sdl_data -> v_msg_sdl_data(Msg, [MsgName], TrUserData); - sdl_stun_probe -> v_msg_sdl_stun_probe(Msg, [MsgName], TrUserData); - sdl_stun_probe_reply -> v_msg_sdl_stun_probe_reply(Msg, [MsgName], TrUserData); - sdl_register -> v_msg_sdl_register(Msg, [MsgName], TrUserData); - sdl_register_ack -> v_msg_sdl_register_ack(Msg, [MsgName], TrUserData); - _ -> mk_type_error(not_a_known_message, Msg, []) - end. - - --compile({nowarn_unused_function,v_submsg_sdl_v4_info/3}). --dialyzer({nowarn_function,v_submsg_sdl_v4_info/3}). -v_submsg_sdl_v4_info(Msg, Path, TrUserData) -> v_msg_sdl_v4_info(Msg, Path, TrUserData). - --compile({nowarn_unused_function,v_msg_sdl_v4_info/3}). --dialyzer({nowarn_function,v_msg_sdl_v4_info/3}). -v_msg_sdl_v4_info(#sdl_v4_info{port = F1, v4 = F2, nat_type = F3}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [port | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [v4 | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [nat_type | Path], TrUserData) - end, - ok; -v_msg_sdl_v4_info(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_v4_info}, X, Path). - --compile({nowarn_unused_function,v_submsg_sdl_v6_info/3}). --dialyzer({nowarn_function,v_submsg_sdl_v6_info/3}). -v_submsg_sdl_v6_info(Msg, Path, TrUserData) -> v_msg_sdl_v6_info(Msg, Path, TrUserData). - --compile({nowarn_unused_function,v_msg_sdl_v6_info/3}). --dialyzer({nowarn_function,v_msg_sdl_v6_info/3}). -v_msg_sdl_v6_info(#sdl_v6_info{port = F1, v6 = F2}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [port | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [v6 | Path], TrUserData) - end, - ok; -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_register_super/3}). --dialyzer({nowarn_function,v_msg_sdl_register_super/3}). -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; - true -> v_type_string(F1, [client_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [network_id | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_bytes(F3, [mac | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_uint32(F4, [ip | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_type_uint32(F5, [mask_len | Path], TrUserData) - end, - if F6 == undefined -> ok; - true -> v_type_string(F6, [hostname | Path], TrUserData) - end, - if F7 == undefined -> ok; - true -> v_type_string(F7, [pub_key | Path], TrUserData) - end, - if F8 == undefined -> ok; - true -> v_type_string(F8, [access_token | Path], TrUserData) - end, - ok; -v_msg_sdl_register_super(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register_super}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_register_super_ack/3}). --dialyzer({nowarn_function,v_msg_sdl_register_super_ack/3}). -v_msg_sdl_register_super_ack(#sdl_register_super_ack{algorithm = F1, key = F2, region_id = F3, session_token = F4}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_string(F1, [algorithm | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [key | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [region_id | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_bytes(F4, [session_token | Path], TrUserData) - end, - ok; -v_msg_sdl_register_super_ack(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register_super_ack}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_register_super_nak/3}). --dialyzer({nowarn_function,v_msg_sdl_register_super_nak/3}). -v_msg_sdl_register_super_nak(#sdl_register_super_nak{error_code = F1, error_message = F2}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [error_code | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_string(F2, [error_message | Path], TrUserData) - end, - ok; -v_msg_sdl_register_super_nak(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register_super_nak}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_query_info/3}). --dialyzer({nowarn_function,v_msg_sdl_query_info/3}). -v_msg_sdl_query_info(#sdl_query_info{dst_mac = F1}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_bytes(F1, [dst_mac | Path], TrUserData) - end, - ok; -v_msg_sdl_query_info(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_query_info}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_peer_info/3}). --dialyzer({nowarn_function,v_msg_sdl_peer_info/3}). -v_msg_sdl_peer_info(#sdl_peer_info{dst_mac = F1, v4_info = F2, v6_info = F3}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_bytes(F1, [dst_mac | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_submsg_sdl_v4_info(F2, [v4_info | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_submsg_sdl_v6_info(F3, [v6_info | Path], TrUserData) - end, - ok; -v_msg_sdl_peer_info(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_peer_info}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_arp_request/3}). --dialyzer({nowarn_function,v_msg_sdl_arp_request/3}). -v_msg_sdl_arp_request(#sdl_arp_request{target_ip = F1, origin_ip = F2, context = F3}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [target_ip | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [origin_ip | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_bytes(F3, [context | Path], TrUserData) - end, - ok; -v_msg_sdl_arp_request(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_arp_request}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_arp_response/3}). --dialyzer({nowarn_function,v_msg_sdl_arp_response/3}). -v_msg_sdl_arp_response(#sdl_arp_response{target_ip = F1, target_mac = F2, origin_ip = F3, context = F4}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [target_ip | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [target_mac | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [origin_ip | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_bytes(F4, [context | Path], TrUserData) - end, - ok; -v_msg_sdl_arp_response(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_arp_response}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_policy_request/3}). --dialyzer({nowarn_function,v_msg_sdl_policy_request/3}). -v_msg_sdl_policy_request(#sdl_policy_request{src_identity_id = F1, dst_identity_id = F2, version = F3}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [src_identity_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [dst_identity_id | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [version | Path], TrUserData) - end, - ok; -v_msg_sdl_policy_request(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_policy_request}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_policy_response/3}). --dialyzer({nowarn_function,v_msg_sdl_policy_response/3}). -v_msg_sdl_policy_response(#sdl_policy_response{src_identity_id = F1, dst_identity_id = F2, version = F3, rules = F4}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [src_identity_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [dst_identity_id | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [version | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_bytes(F4, [rules | Path], TrUserData) - end, - ok; -v_msg_sdl_policy_response(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_policy_response}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_nat_changed_event/3}). --dialyzer({nowarn_function,v_msg_sdl_nat_changed_event/3}). -v_msg_sdl_nat_changed_event(#sdl_nat_changed_event{mac = F1, ip = F2}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_bytes(F1, [mac | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [ip | Path], TrUserData) - end, - ok; -v_msg_sdl_nat_changed_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_nat_changed_event}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_send_register_event/3}). --dialyzer({nowarn_function,v_msg_sdl_send_register_event/3}). -v_msg_sdl_send_register_event(#sdl_send_register_event{dst_mac = F1, nat_ip = F2, nat_port = F3, nat_type = F4, v6_info = F5}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_bytes(F1, [dst_mac | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [nat_ip | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [nat_port | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_uint32(F4, [nat_type | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_submsg_sdl_v6_info(F5, [v6_info | Path], TrUserData) - end, - ok; -v_msg_sdl_send_register_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_send_register_event}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_network_shutdown_event/3}). --dialyzer({nowarn_function,v_msg_sdl_network_shutdown_event/3}). -v_msg_sdl_network_shutdown_event(#sdl_network_shutdown_event{message = F1}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_string(F1, [message | Path], TrUserData) - end, - ok; -v_msg_sdl_network_shutdown_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_network_shutdown_event}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_stun_request/3}). --dialyzer({nowarn_function,v_msg_sdl_stun_request/3}). -v_msg_sdl_stun_request(#sdl_stun_request{client_id = F1, network_id = F2, mac = F3, ip = F4, nat_type = F5, v6_info = F6, session_token = F7}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_string(F1, [client_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [network_id | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_bytes(F3, [mac | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_uint32(F4, [ip | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_type_uint32(F5, [nat_type | Path], TrUserData) - end, - if F6 == undefined -> ok; - true -> v_submsg_sdl_v6_info(F6, [v6_info | Path], TrUserData) - end, - if F7 == undefined -> ok; - true -> v_type_bytes(F7, [session_token | Path], TrUserData) - end, - ok; -v_msg_sdl_stun_request(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_request}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_stun_reply/3}). --dialyzer({nowarn_function,v_msg_sdl_stun_reply/3}). -v_msg_sdl_stun_reply(#sdl_stun_reply{}, _Path, _) -> ok; -v_msg_sdl_stun_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_reply}, X, Path). - --compile({nowarn_unused_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, session_token = F7, identity_id = F8}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [network_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [src_mac | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_bytes(F3, [dst_mac | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_bool(F4, [is_p2p | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_type_uint32(F5, [ttl | Path], TrUserData) - end, - if F6 == undefined -> ok; - true -> v_type_bytes(F6, [data | Path], TrUserData) - end, - if F7 == undefined -> ok; - true -> v_type_bytes(F7, [session_token | Path], TrUserData) - end, - if F8 == undefined -> ok; - true -> v_type_uint32(F8, [identity_id | Path], TrUserData) - end, - ok; -v_msg_sdl_data(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_data}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_stun_probe/3}). --dialyzer({nowarn_function,v_msg_sdl_stun_probe/3}). -v_msg_sdl_stun_probe(#sdl_stun_probe{cookie = F1, attr = F2, step = F3}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [cookie | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [attr | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [step | Path], TrUserData) - end, - ok; -v_msg_sdl_stun_probe(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_probe}, X, Path). - --compile({nowarn_unused_function,v_msg_sdl_stun_probe_reply/3}). --dialyzer({nowarn_function,v_msg_sdl_stun_probe_reply/3}). -v_msg_sdl_stun_probe_reply(#sdl_stun_probe_reply{cookie = F1, step = F2, port = F3, ip = F4}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [cookie | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_uint32(F2, [step | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [port | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_uint32(F4, [ip | Path], TrUserData) - end, - ok; -v_msg_sdl_stun_probe_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_stun_probe_reply}, X, Path). - --compile({nowarn_unused_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) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [network_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [src_mac | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_bytes(F3, [dst_mac | Path], TrUserData) - end, - ok; -v_msg_sdl_register(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register}, X, Path). - --compile({nowarn_unused_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) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [network_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_bytes(F2, [src_mac | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_bytes(F3, [dst_mac | Path], TrUserData) - end, - ok; -v_msg_sdl_register_ack(X, Path, _TrUserData) -> mk_type_error({expected_msg, sdl_register_ack}, X, Path). - --compile({nowarn_unused_function,v_type_uint32/3}). --dialyzer({nowarn_function,v_type_uint32/3}). -v_type_uint32(N, _Path, _TrUserData) when is_integer(N), 0 =< N, N =< 4294967295 -> ok; -v_type_uint32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, uint32, unsigned, 32}, N, Path); -v_type_uint32(X, Path, _TrUserData) -> mk_type_error({bad_integer, uint32, unsigned, 32}, X, Path). - --compile({nowarn_unused_function,v_type_bool/3}). --dialyzer({nowarn_function,v_type_bool/3}). -v_type_bool(false, _Path, _TrUserData) -> ok; -v_type_bool(true, _Path, _TrUserData) -> ok; -v_type_bool(0, _Path, _TrUserData) -> ok; -v_type_bool(1, _Path, _TrUserData) -> ok; -v_type_bool(X, Path, _TrUserData) -> mk_type_error(bad_boolean_value, X, Path). - --compile({nowarn_unused_function,v_type_string/3}). --dialyzer({nowarn_function,v_type_string/3}). -v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) -> - try unicode:characters_to_binary(S) of - B when is_binary(B) -> ok; - {error, _, _} -> mk_type_error(bad_unicode_string, S, Path) - catch - error:badarg -> mk_type_error(bad_unicode_string, S, Path) - end; -v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path). - --compile({nowarn_unused_function,v_type_bytes/3}). --dialyzer({nowarn_function,v_type_bytes/3}). -v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok; -v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> ok; -v_type_bytes(X, Path, _TrUserData) -> mk_type_error(bad_binary_value, X, Path). - --compile({nowarn_unused_function,mk_type_error/3}). --spec mk_type_error(_, _, list()) -> no_return(). -mk_type_error(Error, ValueSeen, Path) -> - Path2 = prettify_path(Path), - erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). - - --compile({nowarn_unused_function,prettify_path/1}). --dialyzer({nowarn_function,prettify_path/1}). -prettify_path([]) -> top_level; -prettify_path(PathR) -> lists:append(lists:join(".", lists:map(fun atom_to_list/1, lists:reverse(PathR)))). - - --compile({nowarn_unused_function,id/2}). --compile({inline,id/2}). -id(X, _TrUserData) -> X. - --compile({nowarn_unused_function,v_ok/3}). --compile({inline,v_ok/3}). -v_ok(_Value, _Path, _TrUserData) -> ok. - --compile({nowarn_unused_function,m_overwrite/3}). --compile({inline,m_overwrite/3}). -m_overwrite(_Prev, New, _TrUserData) -> New. - --compile({nowarn_unused_function,cons/3}). --compile({inline,cons/3}). -cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. - --compile({nowarn_unused_function,lists_reverse/2}). --compile({inline,lists_reverse/2}). -'lists_reverse'(L, _TrUserData) -> lists:reverse(L). --compile({nowarn_unused_function,'erlang_++'/3}). --compile({inline,'erlang_++'/3}). -'erlang_++'(A, B, _TrUserData) -> A ++ B. - - -get_msg_defs() -> - [{{msg, sdl_v4_info}, - [#field{name = port, fnum = 1, rnum = 2, type = uint32, 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 = []}]}, - {{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_register_super}, - [#field{name = client_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}, - #field{name = network_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}, - #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}, - #field{name = mask_len, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []}, - #field{name = hostname, fnum = 6, rnum = 7, type = string, occurrence = defaulty, opts = []}, - #field{name = pub_key, fnum = 7, rnum = 8, type = string, occurrence = defaulty, opts = []}, - #field{name = access_token, fnum = 8, rnum = 9, type = string, occurrence = defaulty, opts = []}]}, - {{msg, sdl_register_super_ack}, - [#field{name = algorithm, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}, - #field{name = key, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}, - #field{name = region_id, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = session_token, fnum = 4, rnum = 5, 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_query_info}, [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}]}, - {{msg, sdl_peer_info}, - [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, - #field{name = v4_info, fnum = 2, rnum = 3, type = {msg, sdl_v4_info}, occurrence = optional, opts = []}, - #field{name = v6_info, fnum = 3, rnum = 4, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}]}, - {{msg, sdl_arp_request}, - [#field{name = target_ip, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = origin_ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = context, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]}, - {{msg, sdl_arp_response}, - [#field{name = target_ip, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = target_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}, - #field{name = origin_ip, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = context, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []}]}, - {{msg, sdl_policy_request}, - [#field{name = src_identity_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = dst_identity_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = version, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]}, - {{msg, sdl_policy_response}, - [#field{name = src_identity_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = dst_identity_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = version, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = rules, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []}]}, - {{msg, sdl_nat_changed_event}, [#field{name = mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, #field{name = ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}]}, - {{msg, sdl_send_register_event}, - [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, - #field{name = nat_ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = nat_port, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = nat_type, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}, - #field{name = v6_info, fnum = 5, rnum = 6, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}]}, - {{msg, sdl_network_shutdown_event}, [#field{name = message, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}]}, - {{msg, sdl_stun_request}, - [#field{name = client_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}, - #field{name = network_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}, - #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}, - #field{name = nat_type, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []}, - #field{name = v6_info, fnum = 6, rnum = 7, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}, - #field{name = session_token, fnum = 7, rnum = 8, type = bytes, occurrence = defaulty, opts = []}]}, - {{msg, sdl_stun_reply}, []}, - {{msg, sdl_data}, - [#field{name = network_id, fnum = 1, rnum = 2, type = uint32, 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 = 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 = data, fnum = 6, rnum = 7, type = bytes, occurrence = defaulty, opts = []}, - #field{name = session_token, fnum = 7, rnum = 8, type = bytes, occurrence = defaulty, opts = []}, - #field{name = identity_id, fnum = 8, rnum = 9, 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 = []}, - #field{name = step, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]}, - {{msg, sdl_stun_probe_reply}, - [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = step, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = port, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]}, - {{msg, sdl_register}, - [#field{name = network_id, fnum = 1, rnum = 2, type = uint32, 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 = []}]}, - {{msg, sdl_register_ack}, - [#field{name = network_id, fnum = 1, rnum = 2, type = uint32, 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 = []}]}]. - - -get_msg_names() -> - [sdl_v4_info, - sdl_v6_info, - sdl_welcome, - 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]. - - -get_group_names() -> []. - - -get_msg_or_group_names() -> - [sdl_v4_info, - sdl_v6_info, - sdl_welcome, - 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]. - - -get_enum_names() -> []. - - -fetch_msg_def(MsgName) -> - case find_msg_def(MsgName) of - Fs when is_list(Fs) -> Fs; - error -> erlang:error({no_such_msg, MsgName}) - end. - - --spec fetch_enum_def(_) -> no_return(). -fetch_enum_def(EnumName) -> erlang:error({no_such_enum, EnumName}). - - -find_msg_def(sdl_v4_info) -> - [#field{name = port, fnum = 1, rnum = 2, type = uint32, 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 = []}]; -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_register_super) -> - [#field{name = client_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}, - #field{name = network_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}, - #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}, - #field{name = mask_len, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []}, - #field{name = hostname, fnum = 6, rnum = 7, type = string, occurrence = defaulty, opts = []}, - #field{name = pub_key, fnum = 7, rnum = 8, type = string, occurrence = defaulty, opts = []}, - #field{name = access_token, fnum = 8, rnum = 9, type = string, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_register_super_ack) -> - [#field{name = algorithm, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}, - #field{name = key, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}, - #field{name = region_id, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = session_token, fnum = 4, rnum = 5, 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_query_info) -> [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_peer_info) -> - [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, - #field{name = v4_info, fnum = 2, rnum = 3, type = {msg, sdl_v4_info}, occurrence = optional, opts = []}, - #field{name = v6_info, fnum = 3, rnum = 4, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}]; -find_msg_def(sdl_arp_request) -> - [#field{name = target_ip, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = origin_ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = context, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_arp_response) -> - [#field{name = target_ip, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = target_mac, fnum = 2, rnum = 3, type = bytes, occurrence = defaulty, opts = []}, - #field{name = origin_ip, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = context, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_policy_request) -> - [#field{name = src_identity_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = dst_identity_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = version, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_policy_response) -> - [#field{name = src_identity_id, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = dst_identity_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = version, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = rules, fnum = 4, rnum = 5, type = bytes, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_nat_changed_event) -> [#field{name = mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, #field{name = ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_send_register_event) -> - [#field{name = dst_mac, fnum = 1, rnum = 2, type = bytes, occurrence = defaulty, opts = []}, - #field{name = nat_ip, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = nat_port, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = nat_type, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}, - #field{name = v6_info, fnum = 5, rnum = 6, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}]; -find_msg_def(sdl_network_shutdown_event) -> [#field{name = message, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_stun_request) -> - [#field{name = client_id, fnum = 1, rnum = 2, type = string, occurrence = defaulty, opts = []}, - #field{name = network_id, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = mac, fnum = 3, rnum = 4, type = bytes, occurrence = defaulty, opts = []}, - #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}, - #field{name = nat_type, fnum = 5, rnum = 6, type = uint32, occurrence = defaulty, opts = []}, - #field{name = v6_info, fnum = 6, rnum = 7, type = {msg, sdl_v6_info}, occurrence = optional, opts = []}, - #field{name = session_token, fnum = 7, rnum = 8, type = bytes, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_stun_reply) -> []; -find_msg_def(sdl_data) -> - [#field{name = network_id, fnum = 1, rnum = 2, type = uint32, 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 = 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 = data, fnum = 6, rnum = 7, type = bytes, occurrence = defaulty, opts = []}, - #field{name = session_token, fnum = 7, rnum = 8, type = bytes, occurrence = defaulty, opts = []}, - #field{name = identity_id, fnum = 8, rnum = 9, 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 = []}, - #field{name = step, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_stun_probe_reply) -> - [#field{name = cookie, fnum = 1, rnum = 2, type = uint32, occurrence = defaulty, opts = []}, - #field{name = step, fnum = 2, rnum = 3, type = uint32, occurrence = defaulty, opts = []}, - #field{name = port, fnum = 3, rnum = 4, type = uint32, occurrence = defaulty, opts = []}, - #field{name = ip, fnum = 4, rnum = 5, type = uint32, occurrence = defaulty, opts = []}]; -find_msg_def(sdl_register) -> - [#field{name = network_id, fnum = 1, rnum = 2, type = uint32, 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 = []}]; -find_msg_def(sdl_register_ack) -> - [#field{name = network_id, fnum = 1, rnum = 2, type = uint32, 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 = []}]; -find_msg_def(_) -> error. - - -find_enum_def(_) -> error. - - --spec enum_symbol_by_value(_, _) -> no_return(). -enum_symbol_by_value(E, V) -> erlang:error({no_enum_defs, E, V}). - - --spec enum_value_by_symbol(_, _) -> no_return(). -enum_value_by_symbol(E, V) -> erlang:error({no_enum_defs, E, V}). - - - -get_service_names() -> []. - - -get_service_def(_) -> error. - - -get_rpc_names(_) -> error. - - -find_rpc_def(_, _) -> error. - - - --spec fetch_rpc_def(_, _) -> no_return(). -fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). - - -%% Convert a a fully qualified (ie with package name) service name -%% as a binary to a service name as an atom. --spec fqbin_to_service_name(_) -> no_return(). -fqbin_to_service_name(X) -> error({gpb_error, {badservice, X}}). - - -%% Convert a service name as an atom to a fully qualified -%% (ie with package name) name as a binary. --spec service_name_to_fqbin(_) -> no_return(). -service_name_to_fqbin(X) -> error({gpb_error, {badservice, X}}). - - -%% Convert a a fully qualified (ie with package name) service name -%% and an rpc name, both as binaries to a service name and an rpc -%% name, as atoms. --spec fqbins_to_service_and_rpc_name(_, _) -> no_return(). -fqbins_to_service_and_rpc_name(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). - - -%% Convert a service name and an rpc name, both as atoms, -%% to a fully qualified (ie with package name) service name and -%% an rpc name as binaries. --spec service_and_rpc_name_to_fqbins(_, _) -> no_return(). -service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). - - -fqbin_to_msg_name(<<"SDLV4Info">>) -> sdl_v4_info; -fqbin_to_msg_name(<<"SDLV6Info">>) -> sdl_v6_info; -fqbin_to_msg_name(<<"SDLWelcome">>) -> sdl_welcome; -fqbin_to_msg_name(<<"SDLRegisterSuper">>) -> sdl_register_super; -fqbin_to_msg_name(<<"SDLRegisterSuperAck">>) -> sdl_register_super_ack; -fqbin_to_msg_name(<<"SDLRegisterSuperNak">>) -> sdl_register_super_nak; -fqbin_to_msg_name(<<"SDLQueryInfo">>) -> sdl_query_info; -fqbin_to_msg_name(<<"SDLPeerInfo">>) -> sdl_peer_info; -fqbin_to_msg_name(<<"SDLArpRequest">>) -> sdl_arp_request; -fqbin_to_msg_name(<<"SDLArpResponse">>) -> sdl_arp_response; -fqbin_to_msg_name(<<"SDLPolicyRequest">>) -> sdl_policy_request; -fqbin_to_msg_name(<<"SDLPolicyResponse">>) -> sdl_policy_response; -fqbin_to_msg_name(<<"SDLNatChangedEvent">>) -> sdl_nat_changed_event; -fqbin_to_msg_name(<<"SDLSendRegisterEvent">>) -> sdl_send_register_event; -fqbin_to_msg_name(<<"SDLNetworkShutdownEvent">>) -> sdl_network_shutdown_event; -fqbin_to_msg_name(<<"SDLStunRequest">>) -> sdl_stun_request; -fqbin_to_msg_name(<<"SDLStunReply">>) -> sdl_stun_reply; -fqbin_to_msg_name(<<"SDLData">>) -> sdl_data; -fqbin_to_msg_name(<<"SDLStunProbe">>) -> sdl_stun_probe; -fqbin_to_msg_name(<<"SDLStunProbeReply">>) -> sdl_stun_probe_reply; -fqbin_to_msg_name(<<"SDLRegister">>) -> sdl_register; -fqbin_to_msg_name(<<"SDLRegisterAck">>) -> sdl_register_ack; -fqbin_to_msg_name(E) -> error({gpb_error, {badmsg, E}}). - - -msg_name_to_fqbin(sdl_v4_info) -> <<"SDLV4Info">>; -msg_name_to_fqbin(sdl_v6_info) -> <<"SDLV6Info">>; -msg_name_to_fqbin(sdl_welcome) -> <<"SDLWelcome">>; -msg_name_to_fqbin(sdl_register_super) -> <<"SDLRegisterSuper">>; -msg_name_to_fqbin(sdl_register_super_ack) -> <<"SDLRegisterSuperAck">>; -msg_name_to_fqbin(sdl_register_super_nak) -> <<"SDLRegisterSuperNak">>; -msg_name_to_fqbin(sdl_query_info) -> <<"SDLQueryInfo">>; -msg_name_to_fqbin(sdl_peer_info) -> <<"SDLPeerInfo">>; -msg_name_to_fqbin(sdl_arp_request) -> <<"SDLArpRequest">>; -msg_name_to_fqbin(sdl_arp_response) -> <<"SDLArpResponse">>; -msg_name_to_fqbin(sdl_policy_request) -> <<"SDLPolicyRequest">>; -msg_name_to_fqbin(sdl_policy_response) -> <<"SDLPolicyResponse">>; -msg_name_to_fqbin(sdl_nat_changed_event) -> <<"SDLNatChangedEvent">>; -msg_name_to_fqbin(sdl_send_register_event) -> <<"SDLSendRegisterEvent">>; -msg_name_to_fqbin(sdl_network_shutdown_event) -> <<"SDLNetworkShutdownEvent">>; -msg_name_to_fqbin(sdl_stun_request) -> <<"SDLStunRequest">>; -msg_name_to_fqbin(sdl_stun_reply) -> <<"SDLStunReply">>; -msg_name_to_fqbin(sdl_data) -> <<"SDLData">>; -msg_name_to_fqbin(sdl_stun_probe) -> <<"SDLStunProbe">>; -msg_name_to_fqbin(sdl_stun_probe_reply) -> <<"SDLStunProbeReply">>; -msg_name_to_fqbin(sdl_register) -> <<"SDLRegister">>; -msg_name_to_fqbin(sdl_register_ack) -> <<"SDLRegisterAck">>; -msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). - - --spec fqbin_to_enum_name(_) -> no_return(). -fqbin_to_enum_name(E) -> error({gpb_error, {badenum, E}}). - - --spec enum_name_to_fqbin(_) -> no_return(). -enum_name_to_fqbin(E) -> error({gpb_error, {badenum, E}}). - - -get_package_name() -> undefined. - - -%% Whether or not the message names -%% are prepended with package name or not. -uses_packages() -> false. - - -source_basename() -> "sdlan_pb.proto". - - -%% Retrieve all proto file names, also imported ones. -%% The order is top-down. The first element is always the main -%% source file. The files are returned with extension, -%% see get_all_proto_names/0 for a version that returns -%% the basenames sans extension -get_all_source_basenames() -> ["sdlan_pb.proto"]. - - -%% Retrieve all proto file names, also imported ones. -%% The order is top-down. The first element is always the main -%% source file. The files are returned sans .proto extension, -%% to make it easier to use them with the various get_xyz_containment -%% functions. -get_all_proto_names() -> ["sdlan_pb"]. - - -get_msg_containment("sdlan_pb") -> - [sdl_arp_request, - sdl_arp_response, - sdl_data, - sdl_nat_changed_event, - sdl_network_shutdown_event, - sdl_peer_info, - sdl_policy_request, - sdl_policy_response, - sdl_query_info, - sdl_register, - sdl_register_ack, - sdl_register_super, - sdl_register_super_ack, - sdl_register_super_nak, - sdl_send_register_event, - sdl_stun_probe, - sdl_stun_probe_reply, - sdl_stun_reply, - sdl_stun_request, - sdl_v4_info, - sdl_v6_info, - sdl_welcome]; -get_msg_containment(P) -> error({gpb_error, {badproto, P}}). - - -get_pkg_containment("sdlan_pb") -> undefined; -get_pkg_containment(P) -> error({gpb_error, {badproto, P}}). - - -get_service_containment("sdlan_pb") -> []; -get_service_containment(P) -> error({gpb_error, {badproto, P}}). - - -get_rpc_containment("sdlan_pb") -> []; -get_rpc_containment(P) -> error({gpb_error, {badproto, P}}). - - -get_enum_containment("sdlan_pb") -> []; -get_enum_containment(P) -> error({gpb_error, {badproto, P}}). - - -get_proto_by_msg_name_as_fqbin(<<"SDLData">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLRegisterSuper">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLRegister">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLStunRequest">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLSendRegisterEvent">>) -> "sdlan_pb"; -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(<<"SDLNatChangedEvent">>) -> "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(<<"SDLPolicyResponse">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLArpResponse">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLStunReply">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLStunProbeReply">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLRegisterSuperNak">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLRegisterSuperAck">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLRegisterAck">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLV6Info">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLV4Info">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLQueryInfo">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(<<"SDLPeerInfo">>) -> "sdlan_pb"; -get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). - - --spec get_proto_by_service_name_as_fqbin(_) -> no_return(). -get_proto_by_service_name_as_fqbin(E) -> error({gpb_error, {badservice, E}}). - - --spec get_proto_by_enum_name_as_fqbin(_) -> no_return(). -get_proto_by_enum_name_as_fqbin(E) -> error({gpb_error, {badenum, E}}). - - --spec get_protos_by_pkg_name_as_fqbin(_) -> no_return(). -get_protos_by_pkg_name_as_fqbin(E) -> error({gpb_error, {badpkg, E}}). - - - -gpb_version_as_string() -> - "4.21.1". - -gpb_version_as_list() -> - [4,21,1]. - -gpb_version_source() -> - "git". diff --git a/message.proto b/proto/sdlan.proto similarity index 100% rename from message.proto rename to proto/sdlan.proto diff --git a/rebar.config b/rebar.config index ae8d624..66bf18c 100644 --- a/rebar.config +++ b/rebar.config @@ -1,6 +1,20 @@ {erl_opts, [ debug_info ]}. + +{plugins, [ + {rebar3_gpb_plugin, ".*", {git, "https://github.com/lrascao/rebar3_gpb_plugin.git", {tag, "2.23.8"}}} +]}. + +{gpb_opts, [ + {i, "proto"}, % proto 文件目录 + {module_name_suffix, "_pb"}, % 生成 xxx_pb.erl + {o_erl, "apps/sdlan/src"}, % .erl 输出到 src + {o_hrl, "apps/sdlan/include"}, % .hrl 输出到 include + {strings_as_binaries, true}, + type_specs +]}. + {deps, [ {poolboy, ".*", {git, "https://github.com/devinus/poolboy.git", {tag, "1.5.1"}}}, {hackney, ".*", {git, "https://github.com/benoitc/hackney.git", {tag, "1.16.0"}}}, @@ -15,6 +29,13 @@ {sync, ".*", {git, "https://github.com/rustyio/sync.git", {branch, "master"}}} ]}. +{provider_hooks, [ + {pre, [ + {compile, {protobuf, compile}}, + {clean, {protobuf, clean}} + ]} +]}. + {relx, [{release, {sdlan, "0.1.0"}, [sdlan, sasl]},