Kaynağa Gözat

add ipv6 address/network for egress (#2906)

Max Ma 1 yıl önce
ebeveyn
işleme
7de252f996
2 değiştirilmiş dosya ile 16 ekleme ve 4 silme
  1. 10 0
      logic/peers.go
  2. 6 4
      models/mqtt.go

+ 10 - 0
logic/peers.go

@@ -306,6 +306,11 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 					IP:   net.ParseIP(node.PrimaryAddress()),
 					Mask: getCIDRMaskFromAddr(node.PrimaryAddress()),
 				},
+				Network6: node.NetworkRange6,
+				EgressGwAddr6: net.IPNet{
+					IP:   node.Address6.IP,
+					Mask: getCIDRMaskFromAddr(node.Address6.IP.String()),
+				},
 				EgressGWCfg: node.EgressGatewayRequest,
 			}
 
@@ -323,6 +328,11 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 					IP:   net.ParseIP(node.PrimaryAddress()),
 					Mask: getCIDRMaskFromAddr(node.PrimaryAddress()),
 				},
+				Network6: node.NetworkRange6,
+				EgressGwAddr6: net.IPNet{
+					IP:   node.Address6.IP,
+					Mask: getCIDRMaskFromAddr(node.Address6.IP.String()),
+				},
 				EgressGWCfg: models.EgressGatewayRequest{
 					NodeID:     fmt.Sprintf("%s-%s", node.ID.String(), "inet"),
 					NetID:      node.Network,

+ 6 - 4
models/mqtt.go

@@ -34,10 +34,12 @@ type IngressInfo struct {
 
 // EgressInfo - struct for egress info
 type EgressInfo struct {
-	EgressID     string               `json:"egress_id" yaml:"egress_id"`
-	Network      net.IPNet            `json:"network" yaml:"network"`
-	EgressGwAddr net.IPNet            `json:"egress_gw_addr" yaml:"egress_gw_addr"`
-	EgressGWCfg  EgressGatewayRequest `json:"egress_gateway_cfg" yaml:"egress_gateway_cfg"`
+	EgressID      string               `json:"egress_id" yaml:"egress_id"`
+	Network       net.IPNet            `json:"network" yaml:"network"`
+	EgressGwAddr  net.IPNet            `json:"egress_gw_addr" yaml:"egress_gw_addr"`
+	Network6      net.IPNet            `json:"network6" yaml:"network6"`
+	EgressGwAddr6 net.IPNet            `json:"egress_gw_addr6" yaml:"egress_gw_addr6"`
+	EgressGWCfg   EgressGatewayRequest `json:"egress_gateway_cfg" yaml:"egress_gateway_cfg"`
 }
 
 // EgressNetworkRoutes - struct for egress network routes for adding routes to peer's interface