Initial commit

This commit is contained in:
2026-06-30 15:14:37 +08:00
commit 15dab96872
311 changed files with 95639 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
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)