Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
lima-vm
GitHub Repository: lima-vm/lima
Path: blob/master/pkg/networks/networks.go
2601 views
1
// SPDX-FileCopyrightText: Copyright The Lima Authors
2
// SPDX-License-Identifier: Apache-2.0
3
4
package networks
5
6
import "net"
7
8
type Config struct {
9
Paths Paths `yaml:"paths" json:"paths"`
10
Group string `yaml:"group,omitempty" json:"group,omitempty"` // default: "everyone"
11
Networks map[string]Network `yaml:"networks" json:"networks"`
12
}
13
14
type Paths struct {
15
SocketVMNet string `yaml:"socketVMNet" json:"socketVMNet"`
16
VarRun string `yaml:"varRun" json:"varRun"`
17
Sudoers string `yaml:"sudoers,omitempty" json:"sudoers,omitempty"`
18
}
19
20
const (
21
ModeUserV2 = "user-v2"
22
ModeHost = "host"
23
ModeShared = "shared"
24
ModeBridged = "bridged"
25
)
26
27
var Modes = []string{
28
ModeUserV2,
29
ModeHost,
30
ModeShared,
31
ModeBridged,
32
}
33
34
type Network struct {
35
Mode string `yaml:"mode" json:"mode"` // "user-v2", "host", "shared", or "bridged"
36
Interface string `yaml:"interface,omitempty" json:"interface,omitempty"` // only used by "bridged" networks
37
Gateway net.IP `yaml:"gateway,omitempty" json:"gateway,omitempty"` // only used by "user-v2", "host" and "shared" networks
38
DHCPEnd net.IP `yaml:"dhcpEnd,omitempty" json:"dhcpEnd,omitempty"` // default: same as Gateway, last byte is 254
39
NetMask net.IP `yaml:"netmask,omitempty" json:"netmask,omitempty"` // default: 255.255.255.0
40
}
41
42