// This file is @generated by prost-build. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Sdlv4Info { #[prost(uint32, tag = "1")] pub port: u32, #[prost(bytes = "vec", tag = "2")] pub v4: ::prost::alloc::vec::Vec, #[prost(uint32, tag = "3")] pub nat_type: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Sdlv6Info { #[prost(uint32, tag = "1")] pub port: u32, #[prost(bytes = "vec", tag = "2")] pub v6: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlWelcome { #[prost(uint32, tag = "1")] pub version: u32, /// 服务器允许的最大双向流 #[prost(uint32, tag = "2")] pub max_bidi_streams: u32, /// 服务器允许的最大包 #[prost(uint32, tag = "3")] pub max_packet_size: u32, /// 心跳包的间隔 #[prost(uint32, tag = "4")] pub heartbeat_sec: u32, } /// quic 通讯消息 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlEmpty { #[prost(uint32, tag = "1")] pub pkt_id: u32, } /// 这里修改成了扁平的结构, 否则有些字段不好找放的位置 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlRegisterSuper { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(string, tag = "2")] pub client_id: ::prost::alloc::string::String, /// 网络地址信息已经有https请求分配了 /// 注册的时候需要带上(network_id, mac, ip, mask_len, hostname) #[prost(uint32, tag = "3")] pub network_id: u32, #[prost(bytes = "vec", tag = "4")] pub mac: ::prost::alloc::vec::Vec, #[prost(uint32, tag = "5")] pub ip: u32, #[prost(uint32, tag = "6")] pub mask_len: u32, #[prost(string, tag = "7")] pub hostname: ::prost::alloc::string::String, #[prost(string, tag = "8")] pub pub_key: ::prost::alloc::string::String, /// 客户端使用http协议请求后端,通过token或者账号密码登录时, 统一返回一个access_token; /// RegisterSuper的时候,验证凭证是否合法 (access_token) #[prost(string, tag = "9")] pub access_token: ::prost::alloc::string::String, } /// 客户端的升级逻辑,在https的接口里面去完成 /// 部分逻辑会脱离quic去通讯,增加session_token校验 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlRegisterSuperAck { #[prost(uint32, tag = "1")] pub pkt_id: u32, /// 目前支持aes, chacha20 #[prost(string, tag = "2")] pub algorithm: ::prost::alloc::string::String, #[prost(bytes = "vec", tag = "3")] pub key: ::prost::alloc::vec::Vec, /// 逻辑分段,chacha20加密算法需要使用该字段 #[prost(uint32, tag = "4")] pub region_id: u32, #[prost(bytes = "vec", tag = "5")] pub session_token: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlRegisterSuperNak { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(uint32, tag = "2")] pub error_code: u32, #[prost(string, tag = "3")] pub error_message: ::prost::alloc::string::String, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlQueryInfo { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(bytes = "vec", tag = "2")] pub dst_mac: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlPeerInfo { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(bytes = "vec", tag = "2")] pub dst_mac: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "3")] pub v4_info: ::core::option::Option, #[prost(message, optional, tag = "4")] pub v6_info: ::core::option::Option, } /// ARP查询相关 /// 真实的arp请求是通过广播的形式获取到的,但是针对于macos这种tun的实现;是能够分析出arp请求包的; /// 对于当前网络来说,服务端是知道mac对应的ip地址的,因此没有必要广播;直接通过服务器端返回 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlArpRequest { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(uint32, tag = "2")] pub target_ip: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlArpResponse { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(uint32, tag = "2")] pub target_ip: u32, #[prost(bytes = "vec", tag = "3")] pub target_mac: ::prost::alloc::vec::Vec, } /// 权限请求查询相关 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlPolicyRequest { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(uint32, tag = "2")] pub src_identity_id: u32, #[prost(uint32, tag = "3")] pub dst_identity_id: u32, #[prost(uint32, tag = "4")] pub version: u32, } /// 基于quic通讯,rules部分已经没有了长度限制 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlPolicyResponse { #[prost(uint32, tag = "1")] pub pkt_id: u32, #[prost(uint32, tag = "2")] pub src_identity_id: u32, #[prost(uint32, tag = "3")] pub dst_identity_id: u32, /// 版本号,客户端需要比较版本号确定是否覆盖; 请求端自己去管理版本号,服务端只是原样回写 #[prost(uint32, tag = "4")] pub version: u32, /// 4+1+2 的稀疏序列化规则 #[prost(bytes = "vec", tag = "5")] pub rules: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlNatChangedEvent { #[prost(bytes = "vec", tag = "1")] pub mac: ::prost::alloc::vec::Vec, #[prost(uint32, tag = "2")] pub ip: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlSendRegisterEvent { #[prost(bytes = "vec", tag = "1")] pub dst_mac: ::prost::alloc::vec::Vec, #[prost(uint32, tag = "2")] pub nat_ip: u32, #[prost(uint32, tag = "3")] pub nat_port: u32, #[prost(uint32, tag = "4")] pub nat_type: u32, #[prost(message, optional, tag = "5")] pub v6_info: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlNetworkShutdownEvent { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } /// client和stun之间的心跳包,客户端需要和super的udp之间的存活逻辑 #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlStunRequest { #[prost(uint32, tag = "1")] pub cookie: u32, #[prost(string, tag = "2")] pub client_id: ::prost::alloc::string::String, #[prost(uint32, tag = "3")] pub network_id: u32, #[prost(bytes = "vec", tag = "4")] pub mac: ::prost::alloc::vec::Vec, #[prost(uint32, tag = "5")] pub ip: u32, #[prost(uint32, tag = "6")] pub nat_type: u32, #[prost(message, optional, tag = "7")] pub v6_info: ::core::option::Option, #[prost(bytes = "vec", tag = "8")] pub session_token: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlStunReply { #[prost(uint32, tag = "1")] pub cookie: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlData { #[prost(uint32, tag = "1")] pub network_id: u32, #[prost(bytes = "vec", tag = "2")] pub src_mac: ::prost::alloc::vec::Vec, #[prost(bytes = "vec", tag = "3")] pub dst_mac: ::prost::alloc::vec::Vec, #[prost(bool, tag = "4")] pub is_p2p: bool, #[prost(uint32, tag = "5")] pub ttl: u32, #[prost(bytes = "bytes", tag = "6")] pub data: ::prost::bytes::Bytes, #[prost(bytes = "vec", tag = "7")] pub session_token: ::prost::alloc::vec::Vec, /// 端通过https登录的时候,服务端会分配该端对应的权限标识 /// 后续的请求过程中需要带上这个值,对端通过这个值要判断对数据包是否放行 #[prost(uint32, tag = "8")] pub identity_id: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlStunProbe { #[prost(uint32, tag = "1")] pub cookie: u32, #[prost(uint32, tag = "2")] pub attr: u32, /// 增加step是为了方便端上判断,收到的请求和响应之间的映射关系;服务器端原样返回 #[prost(uint32, tag = "3")] pub step: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlStunProbeReply { #[prost(uint32, tag = "1")] pub cookie: u32, /// 增加step是为了方便端上判断,收到的请求和响应之间的映射关系;服务器端原样返回 #[prost(uint32, tag = "2")] pub step: u32, #[prost(uint32, tag = "3")] pub port: u32, #[prost(uint32, tag = "4")] pub ip: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlRegister { #[prost(uint32, tag = "1")] pub network_id: u32, #[prost(bytes = "vec", tag = "2")] pub src_mac: ::prost::alloc::vec::Vec, #[prost(bytes = "vec", tag = "3")] pub dst_mac: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SdlRegisterAck { #[prost(uint32, tag = "1")] pub network_id: u32, #[prost(bytes = "vec", tag = "2")] pub src_mac: ::prost::alloc::vec::Vec, #[prost(bytes = "vec", tag = "3")] pub dst_mac: ::prost::alloc::vec::Vec, }