package ctr // Client Ctr 客户端接口(Service 层调用) // // 职责: // 1. 定义 Service 层可调用的所有方法 // 2. 解耦 Service 和 Ctr 实现 // 3. 便于单元测试 Mock // // 使用示例: // // type NetworkService struct { // ctrClient ctr.Client // } // // func (s *NetworkService) CreateNetwork(req *model.Network) error { // return s.ctrClient.CreateNetwork(req.ID, req.Subnet, listenPort) // } type Client interface { // ========== 网络生命周期管理 ========== // CreateNetwork 创建网络 // networkID: 组网 ID(雪花算法 uint64) // subnet: 子网段(例如:"10.0.0.0/24") // listenPort: WireGuard 监听端口(例如:51820 + hash(networkID)) // meshMode: 组网模式("native" | "enhanced") CreateNetwork(networkID uint64, subnet string, listenPort int, meshMode string) error // DeleteNetwork 删除网络 DeleteNetwork(networkID uint64) error // ========== Peer 管理 ========== // AddPeer 添加 Peer // publicKey: Peer 的公钥 // allowedIP: Peer 的允许 IP(例如:"10.0.0.2/32") AddPeer(networkID uint64, publicKey, allowedIP string) error // RemovePeer 移除 Peer RemovePeer(networkID uint64, publicKey string) error // ========== 状态查询 ========== // GetStatus 获取网络状态 // 返回 WGStatus 和 CoreStatus(如果 Core 存在) GetStatus(networkID uint64) (*NetworkStatus, error) // ========== 模式切换(P3 阶段) ========== // SwitchMode 切换传输模式(原生→增强) // mode: "native" | "enhanced" // ✅ P3-1 阶段实现 SwitchMode(networkID uint64, mode string) error // ========== 配置同步(P3 阶段) ========== // UpdateCoreConfig 更新 Core 配置(策略修改后同步) // config: 新的配置对象(根据策略类型决定) // ✅ P3-1 阶段实现 UpdateCoreConfig(networkID uint64, config interface{}) error } // 确保 Ctr 实现了 Client 接口 var _ Client = (*Ctr)(nil)