types.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package vrrp
  2. import "time"
  3. // VRRPInstance represents a Virtual Router Redundancy Protocol configuration
  4. type VRRPInstance struct {
  5. ID string `json:"id"`
  6. Name string `json:"name"` // e.g. "vrrp-lan", "vrrp1"
  7. Interface string `json:"interface"` // e.g. "bridge1", "eth0", "vlan10"
  8. VRID int `json:"vrid"` // 1 - 255
  9. Priority int `json:"priority"` // 1 - 255 (default 100)
  10. Interval int `json:"interval"` // advertisement interval in seconds (default 1)
  11. Preempt bool `json:"preempt"` // true = master preemption active
  12. Version int `json:"version"` // 2 or 3 (default 3)
  13. VirtualIPs []string `json:"virtual_ips"` // e.g. ["192.168.88.254/24"]
  14. AuthType string `json:"auth_type"` // "none", "pass"
  15. AuthPassword string `json:"auth_password,omitempty"`
  16. Disabled bool `json:"disabled"` // true = disabled
  17. Comment string `json:"comment,omitempty"`
  18. // Runtime status
  19. State string `json:"state"` // "MASTER", "BACKUP", "FAULT", "DISABLED"
  20. Running bool `json:"running"` // true if Master or Backup (daemon active)
  21. VirtualMAC string `json:"virtual_mac"` // e.g. "00:00:5E:00:01:0A"
  22. LastTransition time.Time `json:"last_transition,omitempty"`
  23. }
  24. // VRRPSummary provides aggregated status for KPI cards
  25. type VRRPSummary struct {
  26. TotalInstances int `json:"total_instances"`
  27. MasterInstances int `json:"master_instances"`
  28. BackupInstances int `json:"backup_instances"`
  29. FaultInstances int `json:"fault_instances"`
  30. }
  31. // VRRPConfigStore wraps persistent storage
  32. type VRRPConfigStore struct {
  33. Instances []VRRPInstance `json:"instances"`
  34. }