sdlan-lib-rs/src/pb/message.rs

289 lines
10 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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>,
}