289 lines
10 KiB
Rust
289 lines
10 KiB
Rust
// 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<u8>,
|
||
#[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<u8>,
|
||
}
|
||
#[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<u8>,
|
||
#[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<u8>,
|
||
/// 逻辑分段,chacha20加密算法需要使用该字段
|
||
#[prost(uint32, tag = "4")]
|
||
pub region_id: u32,
|
||
#[prost(bytes = "vec", tag = "5")]
|
||
pub session_token: ::prost::alloc::vec::Vec<u8>,
|
||
}
|
||
#[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<u8>,
|
||
}
|
||
#[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<u8>,
|
||
#[prost(message, optional, tag = "3")]
|
||
pub v4_info: ::core::option::Option<Sdlv4Info>,
|
||
#[prost(message, optional, tag = "4")]
|
||
pub v6_info: ::core::option::Option<Sdlv6Info>,
|
||
}
|
||
/// 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<u8>,
|
||
}
|
||
/// 权限请求查询相关
|
||
#[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<u8>,
|
||
}
|
||
#[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<u8>,
|
||
#[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<u8>,
|
||
#[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<Sdlv6Info>,
|
||
}
|
||
#[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<u8>,
|
||
#[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<Sdlv6Info>,
|
||
#[prost(bytes = "vec", tag = "8")]
|
||
pub session_token: ::prost::alloc::vec::Vec<u8>,
|
||
}
|
||
#[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<u8>,
|
||
#[prost(bytes = "vec", tag = "3")]
|
||
pub dst_mac: ::prost::alloc::vec::Vec<u8>,
|
||
#[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<u8>,
|
||
/// 端通过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<u8>,
|
||
#[prost(bytes = "vec", tag = "3")]
|
||
pub dst_mac: ::prost::alloc::vec::Vec<u8>,
|
||
}
|
||
#[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<u8>,
|
||
#[prost(bytes = "vec", tag = "3")]
|
||
pub dst_mac: ::prost::alloc::vec::Vec<u8>,
|
||
}
|