mirror of
https://github.com/siderolabs/talos.git
synced 2025-09-27 16:51:22 +02:00
feat: support setting wake-on-lan for Ethernet
Fixes #11866 Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
This commit is contained in:
parent
94f78dbe79
commit
1fca111e24
@ -376,6 +376,18 @@ enum NethelpersVLANProtocol {
|
||||
VLAN_PROTOCOL8021_AD = 34984;
|
||||
}
|
||||
|
||||
// NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||
enum NethelpersWOLMode {
|
||||
NETHELPERS_WOLMODE_UNSPECIFIED = 0;
|
||||
WOL_MODE_PHY = 1;
|
||||
WOL_MODE_UNICAST = 2;
|
||||
WOL_MODE_MULTICAST = 4;
|
||||
WOL_MODE_BROADCAST = 8;
|
||||
WOL_MODE_MAGIC = 32;
|
||||
WOL_MODE_MAGIC_SECURE = 64;
|
||||
WOL_MODE_FILTER = 128;
|
||||
}
|
||||
|
||||
// BlockEncryptionKeyType describes encryption key type.
|
||||
enum BlockEncryptionKeyType {
|
||||
ENCRYPTION_KEY_STATIC = 0;
|
||||
|
@ -169,6 +169,7 @@ message EthernetSpecSpec {
|
||||
EthernetRingsSpec rings = 1;
|
||||
map<string, bool> features = 2;
|
||||
EthernetChannelsSpec channels = 3;
|
||||
repeated talos.resource.definitions.enums.NethelpersWOLMode wake_on_lan = 4;
|
||||
}
|
||||
|
||||
// EthernetStatusSpec describes status of rendered secrets.
|
||||
@ -182,6 +183,7 @@ message EthernetStatusSpec {
|
||||
EthernetRingsStatus rings = 7;
|
||||
repeated EthernetFeatureStatus features = 8;
|
||||
EthernetChannelsStatus channels = 9;
|
||||
repeated talos.resource.definitions.enums.NethelpersWOLMode wake_on_lan = 10;
|
||||
}
|
||||
|
||||
// HardwareAddrSpec describes spec for the link.
|
||||
|
@ -66,6 +66,13 @@ The list of overridden settings is available with `talosctl get kernelparamstatu
|
||||
title = "Extra Binaries"
|
||||
description = """\
|
||||
Talos Linux now ships with `nft` binary in the rootfs to support CNIs which shell out to `nft` command.
|
||||
"""
|
||||
|
||||
[notes.ethernet-config]
|
||||
title = "Ethernet Configuration"
|
||||
description = """\
|
||||
The Ethernet configuration now includes a `wakeOnLAN` field to enable Wake-on-LAN (WOL) support.
|
||||
This field can be set to enable WOL and specify the desired WOL modes.
|
||||
"""
|
||||
|
||||
[make_deps]
|
||||
|
@ -87,6 +87,10 @@ func (suite *NodeIdentitySuite) TestLoad() {
|
||||
func TestNodeIdentitySuite(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.Run(t, &NodeIdentitySuite{
|
||||
DefaultSuite: ctest.DefaultSuite{
|
||||
AfterSetup: func(suite *ctest.DefaultSuite) {
|
||||
|
@ -297,6 +297,10 @@ func (suite *AcquireSuite) injectViaDisk(cfg []byte, wait bool) {
|
||||
}
|
||||
|
||||
func (suite *AcquireSuite) TestFromDisk() {
|
||||
if os.Geteuid() != 0 {
|
||||
suite.T().Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.presentStateVolume()
|
||||
|
||||
suite.triggerAcquire()
|
||||
@ -319,6 +323,10 @@ func (suite *AcquireSuite) TestFromDisk() {
|
||||
}
|
||||
|
||||
func (suite *AcquireSuite) TestFromDiskFailure() {
|
||||
if os.Geteuid() != 0 {
|
||||
suite.T().Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.presentStateVolume()
|
||||
|
||||
suite.triggerAcquire()
|
||||
@ -344,6 +352,10 @@ func (suite *AcquireSuite) TestFromDiskFailure() {
|
||||
}
|
||||
|
||||
func (suite *AcquireSuite) TestFromDiskToMaintenance() {
|
||||
if os.Geteuid() != 0 {
|
||||
suite.T().Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.presentStateVolume()
|
||||
|
||||
suite.triggerAcquire()
|
||||
|
@ -133,6 +133,10 @@ func (suite *PersistenceSuite) TestConfig() {
|
||||
func TestPersistenceSuite(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
sideroLinkCfg1 := siderolink.NewConfigV1Alpha1()
|
||||
sideroLinkCfg1.APIUrlConfig.URL = must(url.Parse("https://siderolink.api/?jointoken=secret&user=alice"))
|
||||
|
||||
|
@ -139,6 +139,10 @@ func TestIdentitySuite(t *testing.T) {
|
||||
t.Skip("skipping test in FIPS mode")
|
||||
}
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.Run(t, &IdentitySuite{
|
||||
DefaultSuite: ctest.DefaultSuite{
|
||||
AfterSetup: func(suite *ctest.DefaultSuite) {
|
||||
|
@ -342,5 +342,9 @@ func (suite *EtcFileConfigSuite) TearDownTest() {
|
||||
}
|
||||
|
||||
func TestEtcFileConfigSuite(t *testing.T) {
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.Run(t, new(EtcFileConfigSuite))
|
||||
}
|
||||
|
@ -83,6 +83,7 @@ func (ctrl *EthernetConfigController) apply(ctx context.Context, r controller.Ru
|
||||
spec.TypedSpec().Rings = network.EthernetRingsSpec(cfg.Rings())
|
||||
spec.TypedSpec().Channels = network.EthernetChannelsSpec(cfg.Channels())
|
||||
spec.TypedSpec().Features = cfg.Features()
|
||||
spec.TypedSpec().WakeOnLAN = cfg.WakeOnLAN()
|
||||
|
||||
return nil
|
||||
}); err != nil {
|
||||
|
@ -17,6 +17,7 @@ import (
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/siderolabs/talos/internal/app/machined/pkg/controllers/runtime"
|
||||
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||
"github.com/siderolabs/talos/pkg/machinery/resources/network"
|
||||
)
|
||||
|
||||
@ -153,5 +154,22 @@ func (ctrl *EthernetSpecController) apply(
|
||||
}
|
||||
}
|
||||
|
||||
if spec.TypedSpec().WakeOnLAN != nil {
|
||||
var wolModes nethelpers.WOLMode
|
||||
|
||||
for _, mode := range spec.TypedSpec().WakeOnLAN {
|
||||
wolModes |= mode
|
||||
}
|
||||
|
||||
if err := ethClient.SetWakeOnLAN(ethtool.WakeOnLAN{
|
||||
Interface: ethtool.Interface{
|
||||
Name: spec.Metadata().ID(),
|
||||
},
|
||||
Modes: ethtool.WOLMode(wolModes),
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating wake-on-lan: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ func (ctrl *EthernetStatusController) Run(ctx context.Context, r controller.Runt
|
||||
|
||||
// reconcile function runs for every reconciliation loop querying the ethtool state and updating resources.
|
||||
//
|
||||
//nolint:gocyclo
|
||||
//nolint:gocyclo,cyclop
|
||||
func (ctrl *EthernetStatusController) reconcile(
|
||||
ctx context.Context,
|
||||
r controller.Runtime,
|
||||
@ -145,6 +145,11 @@ func (ctrl *EthernetStatusController) reconcile(
|
||||
lgger.Warn("error getting channels", zap.Error(err))
|
||||
}
|
||||
|
||||
wolMode, err := ethClient.WakeOnLAN(iface)
|
||||
if err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||
lgger.Warn("error getting Wake-on-LAN", zap.Error(err))
|
||||
}
|
||||
|
||||
if err := safe.WriterModify(ctx, r, network.NewEthernetStatus(network.NamespaceName, iface.Name), func(res *network.EthernetStatus) error {
|
||||
res.TypedSpec().Port = nethelpers.Port(linkInfo.Port)
|
||||
|
||||
@ -211,6 +216,16 @@ func (ctrl *EthernetStatusController) reconcile(
|
||||
}
|
||||
}
|
||||
|
||||
res.TypedSpec().WakeOnLAN = nil
|
||||
|
||||
if wolMode != nil {
|
||||
for mode := nethelpers.WOLModeMin; mode <= nethelpers.WOLModeMax; mode <<= 1 {
|
||||
if (nethelpers.WOLMode(wolMode.Modes) & mode) == mode {
|
||||
res.TypedSpec().WakeOnLAN = append(res.TypedSpec().WakeOnLAN, mode)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating EthernetStatus resource: %w", err)
|
||||
|
@ -72,6 +72,10 @@ func (suite *PlatformConfigLoadSuite) TestLoadConfig() {
|
||||
func TestPlatformConfigLoadSuite(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.Run(t, &PlatformConfigLoadSuite{
|
||||
DefaultSuite: ctest.DefaultSuite{
|
||||
Timeout: 5 * time.Second,
|
||||
|
@ -88,6 +88,10 @@ func (suite *PlatformConfigStoreSuite) TestStoreConfig() {
|
||||
func TestPlatformConfigStoreSuite(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.Run(t, &PlatformConfigStoreSuite{
|
||||
DefaultSuite: ctest.DefaultSuite{
|
||||
Timeout: 5 * time.Second,
|
||||
|
@ -95,6 +95,10 @@ func (suite *EncryptionSaltSuite) TestLoad() {
|
||||
func TestEncryptionSaltSuite(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("skipping test that requires root privileges")
|
||||
}
|
||||
|
||||
suite.Run(t, &EncryptionSaltSuite{
|
||||
DefaultSuite: ctest.DefaultSuite{
|
||||
AfterSetup: func(suite *ctest.DefaultSuite) {
|
||||
|
@ -1985,6 +1985,71 @@ func (NethelpersVLANProtocol) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{29}
|
||||
}
|
||||
|
||||
// NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||
type NethelpersWOLMode int32
|
||||
|
||||
const (
|
||||
NethelpersWOLMode_NETHELPERS_WOLMODE_UNSPECIFIED NethelpersWOLMode = 0
|
||||
NethelpersWOLMode_WOL_MODE_PHY NethelpersWOLMode = 1
|
||||
NethelpersWOLMode_WOL_MODE_UNICAST NethelpersWOLMode = 2
|
||||
NethelpersWOLMode_WOL_MODE_MULTICAST NethelpersWOLMode = 4
|
||||
NethelpersWOLMode_WOL_MODE_BROADCAST NethelpersWOLMode = 8
|
||||
NethelpersWOLMode_WOL_MODE_MAGIC NethelpersWOLMode = 32
|
||||
NethelpersWOLMode_WOL_MODE_MAGIC_SECURE NethelpersWOLMode = 64
|
||||
NethelpersWOLMode_WOL_MODE_FILTER NethelpersWOLMode = 128
|
||||
)
|
||||
|
||||
// Enum value maps for NethelpersWOLMode.
|
||||
var (
|
||||
NethelpersWOLMode_name = map[int32]string{
|
||||
0: "NETHELPERS_WOLMODE_UNSPECIFIED",
|
||||
1: "WOL_MODE_PHY",
|
||||
2: "WOL_MODE_UNICAST",
|
||||
4: "WOL_MODE_MULTICAST",
|
||||
8: "WOL_MODE_BROADCAST",
|
||||
32: "WOL_MODE_MAGIC",
|
||||
64: "WOL_MODE_MAGIC_SECURE",
|
||||
128: "WOL_MODE_FILTER",
|
||||
}
|
||||
NethelpersWOLMode_value = map[string]int32{
|
||||
"NETHELPERS_WOLMODE_UNSPECIFIED": 0,
|
||||
"WOL_MODE_PHY": 1,
|
||||
"WOL_MODE_UNICAST": 2,
|
||||
"WOL_MODE_MULTICAST": 4,
|
||||
"WOL_MODE_BROADCAST": 8,
|
||||
"WOL_MODE_MAGIC": 32,
|
||||
"WOL_MODE_MAGIC_SECURE": 64,
|
||||
"WOL_MODE_FILTER": 128,
|
||||
}
|
||||
)
|
||||
|
||||
func (x NethelpersWOLMode) Enum() *NethelpersWOLMode {
|
||||
p := new(NethelpersWOLMode)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x NethelpersWOLMode) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (NethelpersWOLMode) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[30].Descriptor()
|
||||
}
|
||||
|
||||
func (NethelpersWOLMode) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[30]
|
||||
}
|
||||
|
||||
func (x NethelpersWOLMode) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use NethelpersWOLMode.Descriptor instead.
|
||||
func (NethelpersWOLMode) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{30}
|
||||
}
|
||||
|
||||
// BlockEncryptionKeyType describes encryption key type.
|
||||
type BlockEncryptionKeyType int32
|
||||
|
||||
@ -2022,11 +2087,11 @@ func (x BlockEncryptionKeyType) String() string {
|
||||
}
|
||||
|
||||
func (BlockEncryptionKeyType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[30].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[31].Descriptor()
|
||||
}
|
||||
|
||||
func (BlockEncryptionKeyType) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[30]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[31]
|
||||
}
|
||||
|
||||
func (x BlockEncryptionKeyType) Number() protoreflect.EnumNumber {
|
||||
@ -2035,7 +2100,7 @@ func (x BlockEncryptionKeyType) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use BlockEncryptionKeyType.Descriptor instead.
|
||||
func (BlockEncryptionKeyType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{30}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{31}
|
||||
}
|
||||
|
||||
// BlockEncryptionProviderType describes encryption provider type.
|
||||
@ -2069,11 +2134,11 @@ func (x BlockEncryptionProviderType) String() string {
|
||||
}
|
||||
|
||||
func (BlockEncryptionProviderType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[31].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[32].Descriptor()
|
||||
}
|
||||
|
||||
func (BlockEncryptionProviderType) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[31]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[32]
|
||||
}
|
||||
|
||||
func (x BlockEncryptionProviderType) Number() protoreflect.EnumNumber {
|
||||
@ -2082,7 +2147,7 @@ func (x BlockEncryptionProviderType) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use BlockEncryptionProviderType.Descriptor instead.
|
||||
func (BlockEncryptionProviderType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{31}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{32}
|
||||
}
|
||||
|
||||
// BlockFilesystemType describes filesystem type.
|
||||
@ -2128,11 +2193,11 @@ func (x BlockFilesystemType) String() string {
|
||||
}
|
||||
|
||||
func (BlockFilesystemType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[32].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[33].Descriptor()
|
||||
}
|
||||
|
||||
func (BlockFilesystemType) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[32]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[33]
|
||||
}
|
||||
|
||||
func (x BlockFilesystemType) Number() protoreflect.EnumNumber {
|
||||
@ -2141,7 +2206,7 @@ func (x BlockFilesystemType) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use BlockFilesystemType.Descriptor instead.
|
||||
func (BlockFilesystemType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{32}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{33}
|
||||
}
|
||||
|
||||
// BlockVolumePhase describes volume phase.
|
||||
@ -2193,11 +2258,11 @@ func (x BlockVolumePhase) String() string {
|
||||
}
|
||||
|
||||
func (BlockVolumePhase) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[33].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[34].Descriptor()
|
||||
}
|
||||
|
||||
func (BlockVolumePhase) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[33]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[34]
|
||||
}
|
||||
|
||||
func (x BlockVolumePhase) Number() protoreflect.EnumNumber {
|
||||
@ -2206,7 +2271,7 @@ func (x BlockVolumePhase) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use BlockVolumePhase.Descriptor instead.
|
||||
func (BlockVolumePhase) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{33}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{34}
|
||||
}
|
||||
|
||||
// BlockVolumeType describes volume type.
|
||||
@ -2252,11 +2317,11 @@ func (x BlockVolumeType) String() string {
|
||||
}
|
||||
|
||||
func (BlockVolumeType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[34].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[35].Descriptor()
|
||||
}
|
||||
|
||||
func (BlockVolumeType) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[34]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[35]
|
||||
}
|
||||
|
||||
func (x BlockVolumeType) Number() protoreflect.EnumNumber {
|
||||
@ -2265,7 +2330,7 @@ func (x BlockVolumeType) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use BlockVolumeType.Descriptor instead.
|
||||
func (BlockVolumeType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{34}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{35}
|
||||
}
|
||||
|
||||
// CriImageCacheStatus describes image cache status type.
|
||||
@ -2305,11 +2370,11 @@ func (x CriImageCacheStatus) String() string {
|
||||
}
|
||||
|
||||
func (CriImageCacheStatus) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[35].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[36].Descriptor()
|
||||
}
|
||||
|
||||
func (CriImageCacheStatus) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[35]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[36]
|
||||
}
|
||||
|
||||
func (x CriImageCacheStatus) Number() protoreflect.EnumNumber {
|
||||
@ -2318,7 +2383,7 @@ func (x CriImageCacheStatus) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use CriImageCacheStatus.Descriptor instead.
|
||||
func (CriImageCacheStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{35}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{36}
|
||||
}
|
||||
|
||||
// CriImageCacheCopyStatus describes image cache copy status type.
|
||||
@ -2358,11 +2423,11 @@ func (x CriImageCacheCopyStatus) String() string {
|
||||
}
|
||||
|
||||
func (CriImageCacheCopyStatus) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[36].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[37].Descriptor()
|
||||
}
|
||||
|
||||
func (CriImageCacheCopyStatus) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[36]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[37]
|
||||
}
|
||||
|
||||
func (x CriImageCacheCopyStatus) Number() protoreflect.EnumNumber {
|
||||
@ -2371,7 +2436,7 @@ func (x CriImageCacheCopyStatus) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use CriImageCacheCopyStatus.Descriptor instead.
|
||||
func (CriImageCacheCopyStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{36}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{37}
|
||||
}
|
||||
|
||||
// KubespanPeerState is KubeSpan peer current state.
|
||||
@ -2408,11 +2473,11 @@ func (x KubespanPeerState) String() string {
|
||||
}
|
||||
|
||||
func (KubespanPeerState) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[37].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[38].Descriptor()
|
||||
}
|
||||
|
||||
func (KubespanPeerState) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[37]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[38]
|
||||
}
|
||||
|
||||
func (x KubespanPeerState) Number() protoreflect.EnumNumber {
|
||||
@ -2421,7 +2486,7 @@ func (x KubespanPeerState) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use KubespanPeerState.Descriptor instead.
|
||||
func (KubespanPeerState) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{37}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{38}
|
||||
}
|
||||
|
||||
// RuntimeMachineStage describes the stage of the machine boot/run process.
|
||||
@ -2476,11 +2541,11 @@ func (x RuntimeMachineStage) String() string {
|
||||
}
|
||||
|
||||
func (RuntimeMachineStage) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[38].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[39].Descriptor()
|
||||
}
|
||||
|
||||
func (RuntimeMachineStage) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[38]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[39]
|
||||
}
|
||||
|
||||
func (x RuntimeMachineStage) Number() protoreflect.EnumNumber {
|
||||
@ -2489,7 +2554,7 @@ func (x RuntimeMachineStage) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use RuntimeMachineStage.Descriptor instead.
|
||||
func (RuntimeMachineStage) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{38}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{39}
|
||||
}
|
||||
|
||||
// RuntimeSELinuxState describes the current SELinux status.
|
||||
@ -2526,11 +2591,11 @@ func (x RuntimeSELinuxState) String() string {
|
||||
}
|
||||
|
||||
func (RuntimeSELinuxState) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[39].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[40].Descriptor()
|
||||
}
|
||||
|
||||
func (RuntimeSELinuxState) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[39]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[40]
|
||||
}
|
||||
|
||||
func (x RuntimeSELinuxState) Number() protoreflect.EnumNumber {
|
||||
@ -2539,7 +2604,7 @@ func (x RuntimeSELinuxState) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use RuntimeSELinuxState.Descriptor instead.
|
||||
func (RuntimeSELinuxState) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{39}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{40}
|
||||
}
|
||||
|
||||
// RuntimeFIPSState describes the current FIPS status.
|
||||
@ -2576,11 +2641,11 @@ func (x RuntimeFIPSState) String() string {
|
||||
}
|
||||
|
||||
func (RuntimeFIPSState) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[40].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[41].Descriptor()
|
||||
}
|
||||
|
||||
func (RuntimeFIPSState) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[40]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[41]
|
||||
}
|
||||
|
||||
func (x RuntimeFIPSState) Number() protoreflect.EnumNumber {
|
||||
@ -2589,7 +2654,7 @@ func (x RuntimeFIPSState) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use RuntimeFIPSState.Descriptor instead.
|
||||
func (RuntimeFIPSState) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{40}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{41}
|
||||
}
|
||||
|
||||
// NetworkConfigLayer describes network configuration layers, with lowest priority first.
|
||||
@ -2632,11 +2697,11 @@ func (x NetworkConfigLayer) String() string {
|
||||
}
|
||||
|
||||
func (NetworkConfigLayer) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[41].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[42].Descriptor()
|
||||
}
|
||||
|
||||
func (NetworkConfigLayer) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[41]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[42]
|
||||
}
|
||||
|
||||
func (x NetworkConfigLayer) Number() protoreflect.EnumNumber {
|
||||
@ -2645,7 +2710,7 @@ func (x NetworkConfigLayer) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use NetworkConfigLayer.Descriptor instead.
|
||||
func (NetworkConfigLayer) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{41}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{42}
|
||||
}
|
||||
|
||||
// NetworkOperator enumerates Talos network operators.
|
||||
@ -2682,11 +2747,11 @@ func (x NetworkOperator) String() string {
|
||||
}
|
||||
|
||||
func (NetworkOperator) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[42].Descriptor()
|
||||
return file_resource_definitions_enums_enums_proto_enumTypes[43].Descriptor()
|
||||
}
|
||||
|
||||
func (NetworkOperator) Type() protoreflect.EnumType {
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[42]
|
||||
return &file_resource_definitions_enums_enums_proto_enumTypes[43]
|
||||
}
|
||||
|
||||
func (x NetworkOperator) Number() protoreflect.EnumNumber {
|
||||
@ -2695,7 +2760,7 @@ func (x NetworkOperator) Number() protoreflect.EnumNumber {
|
||||
|
||||
// Deprecated: Use NetworkOperator.Descriptor instead.
|
||||
func (NetworkOperator) EnumDescriptor() ([]byte, []int) {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{42}
|
||||
return file_resource_definitions_enums_enums_proto_rawDescGZIP(), []int{43}
|
||||
}
|
||||
|
||||
var File_resource_definitions_enums_enums_proto protoreflect.FileDescriptor
|
||||
@ -2999,7 +3064,16 @@ const file_resource_definitions_enums_enums_proto_rawDesc = "" +
|
||||
"\x16NethelpersVLANProtocol\x12'\n" +
|
||||
"#NETHELPERS_VLANPROTOCOL_UNSPECIFIED\x10\x00\x12\x19\n" +
|
||||
"\x13VLAN_PROTOCOL8021_Q\x10\x80\x82\x02\x12\x1a\n" +
|
||||
"\x14VLAN_PROTOCOL8021_AD\x10\xa8\x91\x02*\x7f\n" +
|
||||
"\x14VLAN_PROTOCOL8021_AD\x10\xa8\x91\x02*\xd4\x01\n" +
|
||||
"\x11NethelpersWOLMode\x12\"\n" +
|
||||
"\x1eNETHELPERS_WOLMODE_UNSPECIFIED\x10\x00\x12\x10\n" +
|
||||
"\fWOL_MODE_PHY\x10\x01\x12\x14\n" +
|
||||
"\x10WOL_MODE_UNICAST\x10\x02\x12\x16\n" +
|
||||
"\x12WOL_MODE_MULTICAST\x10\x04\x12\x16\n" +
|
||||
"\x12WOL_MODE_BROADCAST\x10\b\x12\x12\n" +
|
||||
"\x0eWOL_MODE_MAGIC\x10 \x12\x19\n" +
|
||||
"\x15WOL_MODE_MAGIC_SECURE\x10@\x12\x14\n" +
|
||||
"\x0fWOL_MODE_FILTER\x10\x80\x01*\x7f\n" +
|
||||
"\x16BlockEncryptionKeyType\x12\x19\n" +
|
||||
"\x15ENCRYPTION_KEY_STATIC\x10\x00\x12\x1a\n" +
|
||||
"\x16ENCRYPTION_KEY_NODE_ID\x10\x01\x12\x16\n" +
|
||||
@ -3087,7 +3161,7 @@ func file_resource_definitions_enums_enums_proto_rawDescGZIP() []byte {
|
||||
return file_resource_definitions_enums_enums_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_resource_definitions_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 43)
|
||||
var file_resource_definitions_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 44)
|
||||
var file_resource_definitions_enums_enums_proto_goTypes = []any{
|
||||
(MachineType)(0), // 0: talos.resource.definitions.enums.MachineType
|
||||
(NethelpersAddressFlag)(0), // 1: talos.resource.definitions.enums.NethelpersAddressFlag
|
||||
@ -3119,19 +3193,20 @@ var file_resource_definitions_enums_enums_proto_goTypes = []any{
|
||||
(NethelpersRoutingTable)(0), // 27: talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
(NethelpersScope)(0), // 28: talos.resource.definitions.enums.NethelpersScope
|
||||
(NethelpersVLANProtocol)(0), // 29: talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||
(BlockEncryptionKeyType)(0), // 30: talos.resource.definitions.enums.BlockEncryptionKeyType
|
||||
(BlockEncryptionProviderType)(0), // 31: talos.resource.definitions.enums.BlockEncryptionProviderType
|
||||
(BlockFilesystemType)(0), // 32: talos.resource.definitions.enums.BlockFilesystemType
|
||||
(BlockVolumePhase)(0), // 33: talos.resource.definitions.enums.BlockVolumePhase
|
||||
(BlockVolumeType)(0), // 34: talos.resource.definitions.enums.BlockVolumeType
|
||||
(CriImageCacheStatus)(0), // 35: talos.resource.definitions.enums.CriImageCacheStatus
|
||||
(CriImageCacheCopyStatus)(0), // 36: talos.resource.definitions.enums.CriImageCacheCopyStatus
|
||||
(KubespanPeerState)(0), // 37: talos.resource.definitions.enums.KubespanPeerState
|
||||
(RuntimeMachineStage)(0), // 38: talos.resource.definitions.enums.RuntimeMachineStage
|
||||
(RuntimeSELinuxState)(0), // 39: talos.resource.definitions.enums.RuntimeSELinuxState
|
||||
(RuntimeFIPSState)(0), // 40: talos.resource.definitions.enums.RuntimeFIPSState
|
||||
(NetworkConfigLayer)(0), // 41: talos.resource.definitions.enums.NetworkConfigLayer
|
||||
(NetworkOperator)(0), // 42: talos.resource.definitions.enums.NetworkOperator
|
||||
(NethelpersWOLMode)(0), // 30: talos.resource.definitions.enums.NethelpersWOLMode
|
||||
(BlockEncryptionKeyType)(0), // 31: talos.resource.definitions.enums.BlockEncryptionKeyType
|
||||
(BlockEncryptionProviderType)(0), // 32: talos.resource.definitions.enums.BlockEncryptionProviderType
|
||||
(BlockFilesystemType)(0), // 33: talos.resource.definitions.enums.BlockFilesystemType
|
||||
(BlockVolumePhase)(0), // 34: talos.resource.definitions.enums.BlockVolumePhase
|
||||
(BlockVolumeType)(0), // 35: talos.resource.definitions.enums.BlockVolumeType
|
||||
(CriImageCacheStatus)(0), // 36: talos.resource.definitions.enums.CriImageCacheStatus
|
||||
(CriImageCacheCopyStatus)(0), // 37: talos.resource.definitions.enums.CriImageCacheCopyStatus
|
||||
(KubespanPeerState)(0), // 38: talos.resource.definitions.enums.KubespanPeerState
|
||||
(RuntimeMachineStage)(0), // 39: talos.resource.definitions.enums.RuntimeMachineStage
|
||||
(RuntimeSELinuxState)(0), // 40: talos.resource.definitions.enums.RuntimeSELinuxState
|
||||
(RuntimeFIPSState)(0), // 41: talos.resource.definitions.enums.RuntimeFIPSState
|
||||
(NetworkConfigLayer)(0), // 42: talos.resource.definitions.enums.NetworkConfigLayer
|
||||
(NetworkOperator)(0), // 43: talos.resource.definitions.enums.NetworkOperator
|
||||
}
|
||||
var file_resource_definitions_enums_enums_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
@ -3151,7 +3226,7 @@ func file_resource_definitions_enums_enums_proto_init() {
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_resource_definitions_enums_enums_proto_rawDesc), len(file_resource_definitions_enums_enums_proto_rawDesc)),
|
||||
NumEnums: 43,
|
||||
NumEnums: 44,
|
||||
NumMessages: 0,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
|
@ -1336,10 +1336,11 @@ func (x *EthernetRingsStatus) GetTcpDataSplit() bool {
|
||||
|
||||
// EthernetSpecSpec describes config of Ethernet link.
|
||||
type EthernetSpecSpec struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Rings *EthernetRingsSpec `protobuf:"bytes,1,opt,name=rings,proto3" json:"rings,omitempty"`
|
||||
Features map[string]bool `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
||||
Channels *EthernetChannelsSpec `protobuf:"bytes,3,opt,name=channels,proto3" json:"channels,omitempty"`
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Rings *EthernetRingsSpec `protobuf:"bytes,1,opt,name=rings,proto3" json:"rings,omitempty"`
|
||||
Features map[string]bool `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
|
||||
Channels *EthernetChannelsSpec `protobuf:"bytes,3,opt,name=channels,proto3" json:"channels,omitempty"`
|
||||
WakeOnLan []enums.NethelpersWOLMode `protobuf:"varint,4,rep,packed,name=wake_on_lan,json=wakeOnLan,proto3,enum=talos.resource.definitions.enums.NethelpersWOLMode" json:"wake_on_lan,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
@ -1395,18 +1396,26 @@ func (x *EthernetSpecSpec) GetChannels() *EthernetChannelsSpec {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *EthernetSpecSpec) GetWakeOnLan() []enums.NethelpersWOLMode {
|
||||
if x != nil {
|
||||
return x.WakeOnLan
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// EthernetStatusSpec describes status of rendered secrets.
|
||||
type EthernetStatusSpec struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
LinkState bool `protobuf:"varint,1,opt,name=link_state,json=linkState,proto3" json:"link_state,omitempty"`
|
||||
SpeedMegabits int64 `protobuf:"varint,2,opt,name=speed_megabits,json=speedMegabits,proto3" json:"speed_megabits,omitempty"`
|
||||
Port enums.NethelpersPort `protobuf:"varint,3,opt,name=port,proto3,enum=talos.resource.definitions.enums.NethelpersPort" json:"port,omitempty"`
|
||||
Duplex enums.NethelpersDuplex `protobuf:"varint,4,opt,name=duplex,proto3,enum=talos.resource.definitions.enums.NethelpersDuplex" json:"duplex,omitempty"`
|
||||
OurModes []string `protobuf:"bytes,5,rep,name=our_modes,json=ourModes,proto3" json:"our_modes,omitempty"`
|
||||
PeerModes []string `protobuf:"bytes,6,rep,name=peer_modes,json=peerModes,proto3" json:"peer_modes,omitempty"`
|
||||
Rings *EthernetRingsStatus `protobuf:"bytes,7,opt,name=rings,proto3" json:"rings,omitempty"`
|
||||
Features []*EthernetFeatureStatus `protobuf:"bytes,8,rep,name=features,proto3" json:"features,omitempty"`
|
||||
Channels *EthernetChannelsStatus `protobuf:"bytes,9,opt,name=channels,proto3" json:"channels,omitempty"`
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
LinkState bool `protobuf:"varint,1,opt,name=link_state,json=linkState,proto3" json:"link_state,omitempty"`
|
||||
SpeedMegabits int64 `protobuf:"varint,2,opt,name=speed_megabits,json=speedMegabits,proto3" json:"speed_megabits,omitempty"`
|
||||
Port enums.NethelpersPort `protobuf:"varint,3,opt,name=port,proto3,enum=talos.resource.definitions.enums.NethelpersPort" json:"port,omitempty"`
|
||||
Duplex enums.NethelpersDuplex `protobuf:"varint,4,opt,name=duplex,proto3,enum=talos.resource.definitions.enums.NethelpersDuplex" json:"duplex,omitempty"`
|
||||
OurModes []string `protobuf:"bytes,5,rep,name=our_modes,json=ourModes,proto3" json:"our_modes,omitempty"`
|
||||
PeerModes []string `protobuf:"bytes,6,rep,name=peer_modes,json=peerModes,proto3" json:"peer_modes,omitempty"`
|
||||
Rings *EthernetRingsStatus `protobuf:"bytes,7,opt,name=rings,proto3" json:"rings,omitempty"`
|
||||
Features []*EthernetFeatureStatus `protobuf:"bytes,8,rep,name=features,proto3" json:"features,omitempty"`
|
||||
Channels *EthernetChannelsStatus `protobuf:"bytes,9,opt,name=channels,proto3" json:"channels,omitempty"`
|
||||
WakeOnLan []enums.NethelpersWOLMode `protobuf:"varint,10,rep,packed,name=wake_on_lan,json=wakeOnLan,proto3,enum=talos.resource.definitions.enums.NethelpersWOLMode" json:"wake_on_lan,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
@ -1504,6 +1513,13 @@ func (x *EthernetStatusSpec) GetChannels() *EthernetChannelsStatus {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *EthernetStatusSpec) GetWakeOnLan() []enums.NethelpersWOLMode {
|
||||
if x != nil {
|
||||
return x.WakeOnLan
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// HardwareAddrSpec describes spec for the link.
|
||||
type HardwareAddrSpec struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
@ -4646,14 +4662,15 @@ const file_resource_definitions_network_network_proto_rawDesc = "" +
|
||||
"\atx_push\x18\f \x01(\bR\x06txPush\x12\x17\n" +
|
||||
"\arx_push\x18\r \x01(\bR\x06rxPush\x12%\n" +
|
||||
"\x0ftx_push_buf_len\x18\x0e \x01(\rR\ftxPushBufLen\x12$\n" +
|
||||
"\x0etcp_data_split\x18\x0f \x01(\bR\ftcpDataSplit\"\xd2\x02\n" +
|
||||
"\x0etcp_data_split\x18\x0f \x01(\bR\ftcpDataSplit\"\xa7\x03\n" +
|
||||
"\x10EthernetSpecSpec\x12K\n" +
|
||||
"\x05rings\x18\x01 \x01(\v25.talos.resource.definitions.network.EthernetRingsSpecR\x05rings\x12^\n" +
|
||||
"\bfeatures\x18\x02 \x03(\v2B.talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntryR\bfeatures\x12T\n" +
|
||||
"\bchannels\x18\x03 \x01(\v28.talos.resource.definitions.network.EthernetChannelsSpecR\bchannels\x1a;\n" +
|
||||
"\bchannels\x18\x03 \x01(\v28.talos.resource.definitions.network.EthernetChannelsSpecR\bchannels\x12S\n" +
|
||||
"\vwake_on_lan\x18\x04 \x03(\x0e23.talos.resource.definitions.enums.NethelpersWOLModeR\twakeOnLan\x1a;\n" +
|
||||
"\rFeaturesEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||
"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\xa6\x04\n" +
|
||||
"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\xfb\x04\n" +
|
||||
"\x12EthernetStatusSpec\x12\x1d\n" +
|
||||
"\n" +
|
||||
"link_state\x18\x01 \x01(\bR\tlinkState\x12%\n" +
|
||||
@ -4665,7 +4682,9 @@ const file_resource_definitions_network_network_proto_rawDesc = "" +
|
||||
"peer_modes\x18\x06 \x03(\tR\tpeerModes\x12M\n" +
|
||||
"\x05rings\x18\a \x01(\v27.talos.resource.definitions.network.EthernetRingsStatusR\x05rings\x12U\n" +
|
||||
"\bfeatures\x18\b \x03(\v29.talos.resource.definitions.network.EthernetFeatureStatusR\bfeatures\x12V\n" +
|
||||
"\bchannels\x18\t \x01(\v2:.talos.resource.definitions.network.EthernetChannelsStatusR\bchannels\"K\n" +
|
||||
"\bchannels\x18\t \x01(\v2:.talos.resource.definitions.network.EthernetChannelsStatusR\bchannels\x12S\n" +
|
||||
"\vwake_on_lan\x18\n" +
|
||||
" \x03(\x0e23.talos.resource.definitions.enums.NethelpersWOLModeR\twakeOnLan\"K\n" +
|
||||
"\x10HardwareAddrSpec\x12\x12\n" +
|
||||
"\x04name\x18\x01 \x01(\tR\x04name\x12#\n" +
|
||||
"\rhardware_addr\x18\x02 \x01(\fR\fhardwareAddr\"\xe5\x01\n" +
|
||||
@ -5018,26 +5037,27 @@ var file_resource_definitions_network_network_proto_goTypes = []any{
|
||||
(enums.NethelpersPrimaryReselect)(0), // 69: talos.resource.definitions.enums.NethelpersPrimaryReselect
|
||||
(enums.NethelpersFailOverMAC)(0), // 70: talos.resource.definitions.enums.NethelpersFailOverMAC
|
||||
(enums.NethelpersADSelect)(0), // 71: talos.resource.definitions.enums.NethelpersADSelect
|
||||
(enums.NethelpersPort)(0), // 72: talos.resource.definitions.enums.NethelpersPort
|
||||
(enums.NethelpersDuplex)(0), // 73: talos.resource.definitions.enums.NethelpersDuplex
|
||||
(*common.NetIPPort)(nil), // 74: common.NetIPPort
|
||||
(enums.NethelpersLinkType)(0), // 75: talos.resource.definitions.enums.NethelpersLinkType
|
||||
(enums.NethelpersOperationalState)(0), // 76: talos.resource.definitions.enums.NethelpersOperationalState
|
||||
(enums.NethelpersNfTablesChainHook)(0), // 77: talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
||||
(enums.NethelpersNfTablesChainPriority)(0), // 78: talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
||||
(enums.NethelpersNfTablesVerdict)(0), // 79: talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||
(enums.NethelpersConntrackState)(0), // 80: talos.resource.definitions.enums.NethelpersConntrackState
|
||||
(enums.NethelpersICMPType)(0), // 81: talos.resource.definitions.enums.NethelpersICMPType
|
||||
(enums.NethelpersMatchOperator)(0), // 82: talos.resource.definitions.enums.NethelpersMatchOperator
|
||||
(enums.NethelpersProtocol)(0), // 83: talos.resource.definitions.enums.NethelpersProtocol
|
||||
(enums.NethelpersAddressSortAlgorithm)(0), // 84: talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||
(enums.NetworkOperator)(0), // 85: talos.resource.definitions.enums.NetworkOperator
|
||||
(*runtime.PlatformMetadataSpec)(nil), // 86: talos.resource.definitions.runtime.PlatformMetadataSpec
|
||||
(*durationpb.Duration)(nil), // 87: google.protobuf.Duration
|
||||
(enums.NethelpersRoutingTable)(0), // 88: talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
(enums.NethelpersRouteType)(0), // 89: talos.resource.definitions.enums.NethelpersRouteType
|
||||
(enums.NethelpersRouteProtocol)(0), // 90: talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||
(enums.NethelpersVLANProtocol)(0), // 91: talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||
(enums.NethelpersWOLMode)(0), // 72: talos.resource.definitions.enums.NethelpersWOLMode
|
||||
(enums.NethelpersPort)(0), // 73: talos.resource.definitions.enums.NethelpersPort
|
||||
(enums.NethelpersDuplex)(0), // 74: talos.resource.definitions.enums.NethelpersDuplex
|
||||
(*common.NetIPPort)(nil), // 75: common.NetIPPort
|
||||
(enums.NethelpersLinkType)(0), // 76: talos.resource.definitions.enums.NethelpersLinkType
|
||||
(enums.NethelpersOperationalState)(0), // 77: talos.resource.definitions.enums.NethelpersOperationalState
|
||||
(enums.NethelpersNfTablesChainHook)(0), // 78: talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
||||
(enums.NethelpersNfTablesChainPriority)(0), // 79: talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
||||
(enums.NethelpersNfTablesVerdict)(0), // 80: talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||
(enums.NethelpersConntrackState)(0), // 81: talos.resource.definitions.enums.NethelpersConntrackState
|
||||
(enums.NethelpersICMPType)(0), // 82: talos.resource.definitions.enums.NethelpersICMPType
|
||||
(enums.NethelpersMatchOperator)(0), // 83: talos.resource.definitions.enums.NethelpersMatchOperator
|
||||
(enums.NethelpersProtocol)(0), // 84: talos.resource.definitions.enums.NethelpersProtocol
|
||||
(enums.NethelpersAddressSortAlgorithm)(0), // 85: talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||
(enums.NetworkOperator)(0), // 86: talos.resource.definitions.enums.NetworkOperator
|
||||
(*runtime.PlatformMetadataSpec)(nil), // 87: talos.resource.definitions.runtime.PlatformMetadataSpec
|
||||
(*durationpb.Duration)(nil), // 88: google.protobuf.Duration
|
||||
(enums.NethelpersRoutingTable)(0), // 89: talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
(enums.NethelpersRouteType)(0), // 90: talos.resource.definitions.enums.NethelpersRouteType
|
||||
(enums.NethelpersRouteProtocol)(0), // 91: talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||
(enums.NethelpersVLANProtocol)(0), // 92: talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||
}
|
||||
var file_resource_definitions_network_network_proto_depIdxs = []int32{
|
||||
59, // 0: talos.resource.definitions.network.AddressSpecSpec.address:type_name -> common.NetIPPrefix
|
||||
@ -5064,112 +5084,114 @@ var file_resource_definitions_network_network_proto_depIdxs = []int32{
|
||||
13, // 21: talos.resource.definitions.network.EthernetSpecSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsSpec
|
||||
58, // 22: talos.resource.definitions.network.EthernetSpecSpec.features:type_name -> talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntry
|
||||
10, // 23: talos.resource.definitions.network.EthernetSpecSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsSpec
|
||||
72, // 24: talos.resource.definitions.network.EthernetStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
||||
73, // 25: talos.resource.definitions.network.EthernetStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
||||
14, // 26: talos.resource.definitions.network.EthernetStatusSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsStatus
|
||||
12, // 27: talos.resource.definitions.network.EthernetStatusSpec.features:type_name -> talos.resource.definitions.network.EthernetFeatureStatus
|
||||
11, // 28: talos.resource.definitions.network.EthernetStatusSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsStatus
|
||||
74, // 29: talos.resource.definitions.network.HostDNSConfigSpec.listen_addresses:type_name -> common.NetIPPort
|
||||
63, // 30: talos.resource.definitions.network.HostDNSConfigSpec.service_host_dns_address:type_name -> common.NetIP
|
||||
62, // 31: talos.resource.definitions.network.HostnameSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
75, // 32: talos.resource.definitions.network.LinkSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
||||
3, // 33: talos.resource.definitions.network.LinkSpecSpec.bond_slave:type_name -> talos.resource.definitions.network.BondSlave
|
||||
5, // 34: talos.resource.definitions.network.LinkSpecSpec.bridge_slave:type_name -> talos.resource.definitions.network.BridgeSlave
|
||||
55, // 35: talos.resource.definitions.network.LinkSpecSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
||||
2, // 36: talos.resource.definitions.network.LinkSpecSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
||||
4, // 37: talos.resource.definitions.network.LinkSpecSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
||||
57, // 38: talos.resource.definitions.network.LinkSpecSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
||||
62, // 39: talos.resource.definitions.network.LinkSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
75, // 40: talos.resource.definitions.network.LinkStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
||||
76, // 41: talos.resource.definitions.network.LinkStatusSpec.operational_state:type_name -> talos.resource.definitions.enums.NethelpersOperationalState
|
||||
72, // 42: talos.resource.definitions.network.LinkStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
||||
73, // 43: talos.resource.definitions.network.LinkStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
||||
55, // 44: talos.resource.definitions.network.LinkStatusSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
||||
4, // 45: talos.resource.definitions.network.LinkStatusSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
||||
2, // 46: talos.resource.definitions.network.LinkStatusSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
||||
57, // 47: talos.resource.definitions.network.LinkStatusSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
||||
59, // 48: talos.resource.definitions.network.NfTablesAddressMatch.include_subnets:type_name -> common.NetIPPrefix
|
||||
59, // 49: talos.resource.definitions.network.NfTablesAddressMatch.exclude_subnets:type_name -> common.NetIPPrefix
|
||||
77, // 50: talos.resource.definitions.network.NfTablesChainSpec.hook:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
||||
78, // 51: talos.resource.definitions.network.NfTablesChainSpec.priority:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
||||
34, // 52: talos.resource.definitions.network.NfTablesChainSpec.rules:type_name -> talos.resource.definitions.network.NfTablesRule
|
||||
79, // 53: talos.resource.definitions.network.NfTablesChainSpec.policy:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||
80, // 54: talos.resource.definitions.network.NfTablesConntrackStateMatch.states:type_name -> talos.resource.definitions.enums.NethelpersConntrackState
|
||||
81, // 55: talos.resource.definitions.network.NfTablesICMPTypeMatch.types:type_name -> talos.resource.definitions.enums.NethelpersICMPType
|
||||
82, // 56: talos.resource.definitions.network.NfTablesIfNameMatch.operator:type_name -> talos.resource.definitions.enums.NethelpersMatchOperator
|
||||
83, // 57: talos.resource.definitions.network.NfTablesLayer4Match.protocol:type_name -> talos.resource.definitions.enums.NethelpersProtocol
|
||||
33, // 58: talos.resource.definitions.network.NfTablesLayer4Match.match_source_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
||||
33, // 59: talos.resource.definitions.network.NfTablesLayer4Match.match_destination_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
||||
28, // 60: talos.resource.definitions.network.NfTablesLayer4Match.match_icmp_type:type_name -> talos.resource.definitions.network.NfTablesICMPTypeMatch
|
||||
40, // 61: talos.resource.definitions.network.NfTablesPortMatch.ranges:type_name -> talos.resource.definitions.network.PortRange
|
||||
29, // 62: talos.resource.definitions.network.NfTablesRule.match_o_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
||||
79, // 63: talos.resource.definitions.network.NfTablesRule.verdict:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||
32, // 64: talos.resource.definitions.network.NfTablesRule.match_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
||||
32, // 65: talos.resource.definitions.network.NfTablesRule.set_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
||||
24, // 66: talos.resource.definitions.network.NfTablesRule.match_source_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
||||
24, // 67: talos.resource.definitions.network.NfTablesRule.match_destination_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
||||
30, // 68: talos.resource.definitions.network.NfTablesRule.match_layer4:type_name -> talos.resource.definitions.network.NfTablesLayer4Match
|
||||
29, // 69: talos.resource.definitions.network.NfTablesRule.match_i_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
||||
26, // 70: talos.resource.definitions.network.NfTablesRule.clamp_mss:type_name -> talos.resource.definitions.network.NfTablesClampMSS
|
||||
31, // 71: talos.resource.definitions.network.NfTablesRule.match_limit:type_name -> talos.resource.definitions.network.NfTablesLimitMatch
|
||||
27, // 72: talos.resource.definitions.network.NfTablesRule.match_conntrack_state:type_name -> talos.resource.definitions.network.NfTablesConntrackStateMatch
|
||||
59, // 73: talos.resource.definitions.network.NodeAddressFilterSpec.include_subnets:type_name -> common.NetIPPrefix
|
||||
59, // 74: talos.resource.definitions.network.NodeAddressFilterSpec.exclude_subnets:type_name -> common.NetIPPrefix
|
||||
84, // 75: talos.resource.definitions.network.NodeAddressSortAlgorithmSpec.algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||
59, // 76: talos.resource.definitions.network.NodeAddressSpec.addresses:type_name -> common.NetIPPrefix
|
||||
84, // 77: talos.resource.definitions.network.NodeAddressSpec.sort_algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||
85, // 78: talos.resource.definitions.network.OperatorSpecSpec.operator:type_name -> talos.resource.definitions.enums.NetworkOperator
|
||||
7, // 79: talos.resource.definitions.network.OperatorSpecSpec.dhcp4:type_name -> talos.resource.definitions.network.DHCP4OperatorSpec
|
||||
8, // 80: talos.resource.definitions.network.OperatorSpecSpec.dhcp6:type_name -> talos.resource.definitions.network.DHCP6OperatorSpec
|
||||
54, // 81: talos.resource.definitions.network.OperatorSpecSpec.vip:type_name -> talos.resource.definitions.network.VIPOperatorSpec
|
||||
62, // 82: talos.resource.definitions.network.OperatorSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
0, // 83: talos.resource.definitions.network.PlatformConfigSpec.addresses:type_name -> talos.resource.definitions.network.AddressSpecSpec
|
||||
22, // 84: talos.resource.definitions.network.PlatformConfigSpec.links:type_name -> talos.resource.definitions.network.LinkSpecSpec
|
||||
45, // 85: talos.resource.definitions.network.PlatformConfigSpec.routes:type_name -> talos.resource.definitions.network.RouteSpecSpec
|
||||
19, // 86: talos.resource.definitions.network.PlatformConfigSpec.hostnames:type_name -> talos.resource.definitions.network.HostnameSpecSpec
|
||||
43, // 87: talos.resource.definitions.network.PlatformConfigSpec.resolvers:type_name -> talos.resource.definitions.network.ResolverSpecSpec
|
||||
50, // 88: talos.resource.definitions.network.PlatformConfigSpec.time_servers:type_name -> talos.resource.definitions.network.TimeServerSpecSpec
|
||||
38, // 89: talos.resource.definitions.network.PlatformConfigSpec.operators:type_name -> talos.resource.definitions.network.OperatorSpecSpec
|
||||
63, // 90: talos.resource.definitions.network.PlatformConfigSpec.external_ips:type_name -> common.NetIP
|
||||
41, // 91: talos.resource.definitions.network.PlatformConfigSpec.probes:type_name -> talos.resource.definitions.network.ProbeSpecSpec
|
||||
86, // 92: talos.resource.definitions.network.PlatformConfigSpec.metadata:type_name -> talos.resource.definitions.runtime.PlatformMetadataSpec
|
||||
87, // 93: talos.resource.definitions.network.ProbeSpecSpec.interval:type_name -> google.protobuf.Duration
|
||||
49, // 94: talos.resource.definitions.network.ProbeSpecSpec.tcp:type_name -> talos.resource.definitions.network.TCPProbeSpec
|
||||
62, // 95: talos.resource.definitions.network.ProbeSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
63, // 96: talos.resource.definitions.network.ResolverSpecSpec.dns_servers:type_name -> common.NetIP
|
||||
62, // 97: talos.resource.definitions.network.ResolverSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
63, // 98: talos.resource.definitions.network.ResolverStatusSpec.dns_servers:type_name -> common.NetIP
|
||||
60, // 99: talos.resource.definitions.network.RouteSpecSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
||||
59, // 100: talos.resource.definitions.network.RouteSpecSpec.destination:type_name -> common.NetIPPrefix
|
||||
63, // 101: talos.resource.definitions.network.RouteSpecSpec.source:type_name -> common.NetIP
|
||||
63, // 102: talos.resource.definitions.network.RouteSpecSpec.gateway:type_name -> common.NetIP
|
||||
88, // 103: talos.resource.definitions.network.RouteSpecSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
61, // 104: talos.resource.definitions.network.RouteSpecSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
||||
89, // 105: talos.resource.definitions.network.RouteSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
||||
90, // 106: talos.resource.definitions.network.RouteSpecSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||
62, // 107: talos.resource.definitions.network.RouteSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
60, // 108: talos.resource.definitions.network.RouteStatusSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
||||
59, // 109: talos.resource.definitions.network.RouteStatusSpec.destination:type_name -> common.NetIPPrefix
|
||||
63, // 110: talos.resource.definitions.network.RouteStatusSpec.source:type_name -> common.NetIP
|
||||
63, // 111: talos.resource.definitions.network.RouteStatusSpec.gateway:type_name -> common.NetIP
|
||||
88, // 112: talos.resource.definitions.network.RouteStatusSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
61, // 113: talos.resource.definitions.network.RouteStatusSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
||||
89, // 114: talos.resource.definitions.network.RouteStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
||||
90, // 115: talos.resource.definitions.network.RouteStatusSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||
87, // 116: talos.resource.definitions.network.TCPProbeSpec.timeout:type_name -> google.protobuf.Duration
|
||||
62, // 117: talos.resource.definitions.network.TimeServerSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
63, // 118: talos.resource.definitions.network.VIPOperatorSpec.ip:type_name -> common.NetIP
|
||||
52, // 119: talos.resource.definitions.network.VIPOperatorSpec.equinix_metal:type_name -> talos.resource.definitions.network.VIPEquinixMetalSpec
|
||||
53, // 120: talos.resource.definitions.network.VIPOperatorSpec.h_cloud:type_name -> talos.resource.definitions.network.VIPHCloudSpec
|
||||
91, // 121: talos.resource.definitions.network.VLANSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||
87, // 122: talos.resource.definitions.network.WireguardPeer.persistent_keepalive_interval:type_name -> google.protobuf.Duration
|
||||
59, // 123: talos.resource.definitions.network.WireguardPeer.allowed_ips:type_name -> common.NetIPPrefix
|
||||
56, // 124: talos.resource.definitions.network.WireguardSpec.peers:type_name -> talos.resource.definitions.network.WireguardPeer
|
||||
125, // [125:125] is the sub-list for method output_type
|
||||
125, // [125:125] is the sub-list for method input_type
|
||||
125, // [125:125] is the sub-list for extension type_name
|
||||
125, // [125:125] is the sub-list for extension extendee
|
||||
0, // [0:125] is the sub-list for field type_name
|
||||
72, // 24: talos.resource.definitions.network.EthernetSpecSpec.wake_on_lan:type_name -> talos.resource.definitions.enums.NethelpersWOLMode
|
||||
73, // 25: talos.resource.definitions.network.EthernetStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
||||
74, // 26: talos.resource.definitions.network.EthernetStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
||||
14, // 27: talos.resource.definitions.network.EthernetStatusSpec.rings:type_name -> talos.resource.definitions.network.EthernetRingsStatus
|
||||
12, // 28: talos.resource.definitions.network.EthernetStatusSpec.features:type_name -> talos.resource.definitions.network.EthernetFeatureStatus
|
||||
11, // 29: talos.resource.definitions.network.EthernetStatusSpec.channels:type_name -> talos.resource.definitions.network.EthernetChannelsStatus
|
||||
72, // 30: talos.resource.definitions.network.EthernetStatusSpec.wake_on_lan:type_name -> talos.resource.definitions.enums.NethelpersWOLMode
|
||||
75, // 31: talos.resource.definitions.network.HostDNSConfigSpec.listen_addresses:type_name -> common.NetIPPort
|
||||
63, // 32: talos.resource.definitions.network.HostDNSConfigSpec.service_host_dns_address:type_name -> common.NetIP
|
||||
62, // 33: talos.resource.definitions.network.HostnameSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
76, // 34: talos.resource.definitions.network.LinkSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
||||
3, // 35: talos.resource.definitions.network.LinkSpecSpec.bond_slave:type_name -> talos.resource.definitions.network.BondSlave
|
||||
5, // 36: talos.resource.definitions.network.LinkSpecSpec.bridge_slave:type_name -> talos.resource.definitions.network.BridgeSlave
|
||||
55, // 37: talos.resource.definitions.network.LinkSpecSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
||||
2, // 38: talos.resource.definitions.network.LinkSpecSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
||||
4, // 39: talos.resource.definitions.network.LinkSpecSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
||||
57, // 40: talos.resource.definitions.network.LinkSpecSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
||||
62, // 41: talos.resource.definitions.network.LinkSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
76, // 42: talos.resource.definitions.network.LinkStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersLinkType
|
||||
77, // 43: talos.resource.definitions.network.LinkStatusSpec.operational_state:type_name -> talos.resource.definitions.enums.NethelpersOperationalState
|
||||
73, // 44: talos.resource.definitions.network.LinkStatusSpec.port:type_name -> talos.resource.definitions.enums.NethelpersPort
|
||||
74, // 45: talos.resource.definitions.network.LinkStatusSpec.duplex:type_name -> talos.resource.definitions.enums.NethelpersDuplex
|
||||
55, // 46: talos.resource.definitions.network.LinkStatusSpec.vlan:type_name -> talos.resource.definitions.network.VLANSpec
|
||||
4, // 47: talos.resource.definitions.network.LinkStatusSpec.bridge_master:type_name -> talos.resource.definitions.network.BridgeMasterSpec
|
||||
2, // 48: talos.resource.definitions.network.LinkStatusSpec.bond_master:type_name -> talos.resource.definitions.network.BondMasterSpec
|
||||
57, // 49: talos.resource.definitions.network.LinkStatusSpec.wireguard:type_name -> talos.resource.definitions.network.WireguardSpec
|
||||
59, // 50: talos.resource.definitions.network.NfTablesAddressMatch.include_subnets:type_name -> common.NetIPPrefix
|
||||
59, // 51: talos.resource.definitions.network.NfTablesAddressMatch.exclude_subnets:type_name -> common.NetIPPrefix
|
||||
78, // 52: talos.resource.definitions.network.NfTablesChainSpec.hook:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainHook
|
||||
79, // 53: talos.resource.definitions.network.NfTablesChainSpec.priority:type_name -> talos.resource.definitions.enums.NethelpersNfTablesChainPriority
|
||||
34, // 54: talos.resource.definitions.network.NfTablesChainSpec.rules:type_name -> talos.resource.definitions.network.NfTablesRule
|
||||
80, // 55: talos.resource.definitions.network.NfTablesChainSpec.policy:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||
81, // 56: talos.resource.definitions.network.NfTablesConntrackStateMatch.states:type_name -> talos.resource.definitions.enums.NethelpersConntrackState
|
||||
82, // 57: talos.resource.definitions.network.NfTablesICMPTypeMatch.types:type_name -> talos.resource.definitions.enums.NethelpersICMPType
|
||||
83, // 58: talos.resource.definitions.network.NfTablesIfNameMatch.operator:type_name -> talos.resource.definitions.enums.NethelpersMatchOperator
|
||||
84, // 59: talos.resource.definitions.network.NfTablesLayer4Match.protocol:type_name -> talos.resource.definitions.enums.NethelpersProtocol
|
||||
33, // 60: talos.resource.definitions.network.NfTablesLayer4Match.match_source_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
||||
33, // 61: talos.resource.definitions.network.NfTablesLayer4Match.match_destination_port:type_name -> talos.resource.definitions.network.NfTablesPortMatch
|
||||
28, // 62: talos.resource.definitions.network.NfTablesLayer4Match.match_icmp_type:type_name -> talos.resource.definitions.network.NfTablesICMPTypeMatch
|
||||
40, // 63: talos.resource.definitions.network.NfTablesPortMatch.ranges:type_name -> talos.resource.definitions.network.PortRange
|
||||
29, // 64: talos.resource.definitions.network.NfTablesRule.match_o_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
||||
80, // 65: talos.resource.definitions.network.NfTablesRule.verdict:type_name -> talos.resource.definitions.enums.NethelpersNfTablesVerdict
|
||||
32, // 66: talos.resource.definitions.network.NfTablesRule.match_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
||||
32, // 67: talos.resource.definitions.network.NfTablesRule.set_mark:type_name -> talos.resource.definitions.network.NfTablesMark
|
||||
24, // 68: talos.resource.definitions.network.NfTablesRule.match_source_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
||||
24, // 69: talos.resource.definitions.network.NfTablesRule.match_destination_address:type_name -> talos.resource.definitions.network.NfTablesAddressMatch
|
||||
30, // 70: talos.resource.definitions.network.NfTablesRule.match_layer4:type_name -> talos.resource.definitions.network.NfTablesLayer4Match
|
||||
29, // 71: talos.resource.definitions.network.NfTablesRule.match_i_if_name:type_name -> talos.resource.definitions.network.NfTablesIfNameMatch
|
||||
26, // 72: talos.resource.definitions.network.NfTablesRule.clamp_mss:type_name -> talos.resource.definitions.network.NfTablesClampMSS
|
||||
31, // 73: talos.resource.definitions.network.NfTablesRule.match_limit:type_name -> talos.resource.definitions.network.NfTablesLimitMatch
|
||||
27, // 74: talos.resource.definitions.network.NfTablesRule.match_conntrack_state:type_name -> talos.resource.definitions.network.NfTablesConntrackStateMatch
|
||||
59, // 75: talos.resource.definitions.network.NodeAddressFilterSpec.include_subnets:type_name -> common.NetIPPrefix
|
||||
59, // 76: talos.resource.definitions.network.NodeAddressFilterSpec.exclude_subnets:type_name -> common.NetIPPrefix
|
||||
85, // 77: talos.resource.definitions.network.NodeAddressSortAlgorithmSpec.algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||
59, // 78: talos.resource.definitions.network.NodeAddressSpec.addresses:type_name -> common.NetIPPrefix
|
||||
85, // 79: talos.resource.definitions.network.NodeAddressSpec.sort_algorithm:type_name -> talos.resource.definitions.enums.NethelpersAddressSortAlgorithm
|
||||
86, // 80: talos.resource.definitions.network.OperatorSpecSpec.operator:type_name -> talos.resource.definitions.enums.NetworkOperator
|
||||
7, // 81: talos.resource.definitions.network.OperatorSpecSpec.dhcp4:type_name -> talos.resource.definitions.network.DHCP4OperatorSpec
|
||||
8, // 82: talos.resource.definitions.network.OperatorSpecSpec.dhcp6:type_name -> talos.resource.definitions.network.DHCP6OperatorSpec
|
||||
54, // 83: talos.resource.definitions.network.OperatorSpecSpec.vip:type_name -> talos.resource.definitions.network.VIPOperatorSpec
|
||||
62, // 84: talos.resource.definitions.network.OperatorSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
0, // 85: talos.resource.definitions.network.PlatformConfigSpec.addresses:type_name -> talos.resource.definitions.network.AddressSpecSpec
|
||||
22, // 86: talos.resource.definitions.network.PlatformConfigSpec.links:type_name -> talos.resource.definitions.network.LinkSpecSpec
|
||||
45, // 87: talos.resource.definitions.network.PlatformConfigSpec.routes:type_name -> talos.resource.definitions.network.RouteSpecSpec
|
||||
19, // 88: talos.resource.definitions.network.PlatformConfigSpec.hostnames:type_name -> talos.resource.definitions.network.HostnameSpecSpec
|
||||
43, // 89: talos.resource.definitions.network.PlatformConfigSpec.resolvers:type_name -> talos.resource.definitions.network.ResolverSpecSpec
|
||||
50, // 90: talos.resource.definitions.network.PlatformConfigSpec.time_servers:type_name -> talos.resource.definitions.network.TimeServerSpecSpec
|
||||
38, // 91: talos.resource.definitions.network.PlatformConfigSpec.operators:type_name -> talos.resource.definitions.network.OperatorSpecSpec
|
||||
63, // 92: talos.resource.definitions.network.PlatformConfigSpec.external_ips:type_name -> common.NetIP
|
||||
41, // 93: talos.resource.definitions.network.PlatformConfigSpec.probes:type_name -> talos.resource.definitions.network.ProbeSpecSpec
|
||||
87, // 94: talos.resource.definitions.network.PlatformConfigSpec.metadata:type_name -> talos.resource.definitions.runtime.PlatformMetadataSpec
|
||||
88, // 95: talos.resource.definitions.network.ProbeSpecSpec.interval:type_name -> google.protobuf.Duration
|
||||
49, // 96: talos.resource.definitions.network.ProbeSpecSpec.tcp:type_name -> talos.resource.definitions.network.TCPProbeSpec
|
||||
62, // 97: talos.resource.definitions.network.ProbeSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
63, // 98: talos.resource.definitions.network.ResolverSpecSpec.dns_servers:type_name -> common.NetIP
|
||||
62, // 99: talos.resource.definitions.network.ResolverSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
63, // 100: talos.resource.definitions.network.ResolverStatusSpec.dns_servers:type_name -> common.NetIP
|
||||
60, // 101: talos.resource.definitions.network.RouteSpecSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
||||
59, // 102: talos.resource.definitions.network.RouteSpecSpec.destination:type_name -> common.NetIPPrefix
|
||||
63, // 103: talos.resource.definitions.network.RouteSpecSpec.source:type_name -> common.NetIP
|
||||
63, // 104: talos.resource.definitions.network.RouteSpecSpec.gateway:type_name -> common.NetIP
|
||||
89, // 105: talos.resource.definitions.network.RouteSpecSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
61, // 106: talos.resource.definitions.network.RouteSpecSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
||||
90, // 107: talos.resource.definitions.network.RouteSpecSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
||||
91, // 108: talos.resource.definitions.network.RouteSpecSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||
62, // 109: talos.resource.definitions.network.RouteSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
60, // 110: talos.resource.definitions.network.RouteStatusSpec.family:type_name -> talos.resource.definitions.enums.NethelpersFamily
|
||||
59, // 111: talos.resource.definitions.network.RouteStatusSpec.destination:type_name -> common.NetIPPrefix
|
||||
63, // 112: talos.resource.definitions.network.RouteStatusSpec.source:type_name -> common.NetIP
|
||||
63, // 113: talos.resource.definitions.network.RouteStatusSpec.gateway:type_name -> common.NetIP
|
||||
89, // 114: talos.resource.definitions.network.RouteStatusSpec.table:type_name -> talos.resource.definitions.enums.NethelpersRoutingTable
|
||||
61, // 115: talos.resource.definitions.network.RouteStatusSpec.scope:type_name -> talos.resource.definitions.enums.NethelpersScope
|
||||
90, // 116: talos.resource.definitions.network.RouteStatusSpec.type:type_name -> talos.resource.definitions.enums.NethelpersRouteType
|
||||
91, // 117: talos.resource.definitions.network.RouteStatusSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersRouteProtocol
|
||||
88, // 118: talos.resource.definitions.network.TCPProbeSpec.timeout:type_name -> google.protobuf.Duration
|
||||
62, // 119: talos.resource.definitions.network.TimeServerSpecSpec.config_layer:type_name -> talos.resource.definitions.enums.NetworkConfigLayer
|
||||
63, // 120: talos.resource.definitions.network.VIPOperatorSpec.ip:type_name -> common.NetIP
|
||||
52, // 121: talos.resource.definitions.network.VIPOperatorSpec.equinix_metal:type_name -> talos.resource.definitions.network.VIPEquinixMetalSpec
|
||||
53, // 122: talos.resource.definitions.network.VIPOperatorSpec.h_cloud:type_name -> talos.resource.definitions.network.VIPHCloudSpec
|
||||
92, // 123: talos.resource.definitions.network.VLANSpec.protocol:type_name -> talos.resource.definitions.enums.NethelpersVLANProtocol
|
||||
88, // 124: talos.resource.definitions.network.WireguardPeer.persistent_keepalive_interval:type_name -> google.protobuf.Duration
|
||||
59, // 125: talos.resource.definitions.network.WireguardPeer.allowed_ips:type_name -> common.NetIPPrefix
|
||||
56, // 126: talos.resource.definitions.network.WireguardSpec.peers:type_name -> talos.resource.definitions.network.WireguardPeer
|
||||
127, // [127:127] is the sub-list for method output_type
|
||||
127, // [127:127] is the sub-list for method input_type
|
||||
127, // [127:127] is the sub-list for extension type_name
|
||||
127, // [127:127] is the sub-list for extension extendee
|
||||
0, // [0:127] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_resource_definitions_network_network_proto_init() }
|
||||
|
@ -1228,6 +1228,27 @@ func (m *EthernetSpecSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
|
||||
i -= len(m.unknownFields)
|
||||
copy(dAtA[i:], m.unknownFields)
|
||||
}
|
||||
if len(m.WakeOnLan) > 0 {
|
||||
var pksize2 int
|
||||
for _, num := range m.WakeOnLan {
|
||||
pksize2 += protohelpers.SizeOfVarint(uint64(num))
|
||||
}
|
||||
i -= pksize2
|
||||
j1 := i
|
||||
for _, num1 := range m.WakeOnLan {
|
||||
num := uint64(num1)
|
||||
for num >= 1<<7 {
|
||||
dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
|
||||
num >>= 7
|
||||
j1++
|
||||
}
|
||||
dAtA[j1] = uint8(num)
|
||||
j1++
|
||||
}
|
||||
i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
|
||||
i--
|
||||
dAtA[i] = 0x22
|
||||
}
|
||||
if m.Channels != nil {
|
||||
size, err := m.Channels.MarshalToSizedBufferVT(dAtA[:i])
|
||||
if err != nil {
|
||||
@ -1303,6 +1324,27 @@ func (m *EthernetStatusSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
|
||||
i -= len(m.unknownFields)
|
||||
copy(dAtA[i:], m.unknownFields)
|
||||
}
|
||||
if len(m.WakeOnLan) > 0 {
|
||||
var pksize2 int
|
||||
for _, num := range m.WakeOnLan {
|
||||
pksize2 += protohelpers.SizeOfVarint(uint64(num))
|
||||
}
|
||||
i -= pksize2
|
||||
j1 := i
|
||||
for _, num1 := range m.WakeOnLan {
|
||||
num := uint64(num1)
|
||||
for num >= 1<<7 {
|
||||
dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
|
||||
num >>= 7
|
||||
j1++
|
||||
}
|
||||
dAtA[j1] = uint8(num)
|
||||
j1++
|
||||
}
|
||||
i = protohelpers.EncodeVarint(dAtA, i, uint64(pksize2))
|
||||
i--
|
||||
dAtA[i] = 0x52
|
||||
}
|
||||
if m.Channels != nil {
|
||||
size, err := m.Channels.MarshalToSizedBufferVT(dAtA[:i])
|
||||
if err != nil {
|
||||
@ -4994,6 +5036,13 @@ func (m *EthernetSpecSpec) SizeVT() (n int) {
|
||||
l = m.Channels.SizeVT()
|
||||
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
|
||||
}
|
||||
if len(m.WakeOnLan) > 0 {
|
||||
l = 0
|
||||
for _, e := range m.WakeOnLan {
|
||||
l += protohelpers.SizeOfVarint(uint64(e))
|
||||
}
|
||||
n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l
|
||||
}
|
||||
n += len(m.unknownFields)
|
||||
return n
|
||||
}
|
||||
@ -5042,6 +5091,13 @@ func (m *EthernetStatusSpec) SizeVT() (n int) {
|
||||
l = m.Channels.SizeVT()
|
||||
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
|
||||
}
|
||||
if len(m.WakeOnLan) > 0 {
|
||||
l = 0
|
||||
for _, e := range m.WakeOnLan {
|
||||
l += protohelpers.SizeOfVarint(uint64(e))
|
||||
}
|
||||
n += 1 + protohelpers.SizeOfVarint(uint64(l)) + l
|
||||
}
|
||||
n += len(m.unknownFields)
|
||||
return n
|
||||
}
|
||||
@ -9316,6 +9372,75 @@ func (m *EthernetSpecSpec) UnmarshalVT(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 4:
|
||||
if wireType == 0 {
|
||||
var v enums.NethelpersWOLMode
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protohelpers.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||
} else if wireType == 2 {
|
||||
var packedLen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protohelpers.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
packedLen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if packedLen < 0 {
|
||||
return protohelpers.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + packedLen
|
||||
if postIndex < 0 {
|
||||
return protohelpers.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
var elementCount int
|
||||
if elementCount != 0 && len(m.WakeOnLan) == 0 {
|
||||
m.WakeOnLan = make([]enums.NethelpersWOLMode, 0, elementCount)
|
||||
}
|
||||
for iNdEx < postIndex {
|
||||
var v enums.NethelpersWOLMode
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protohelpers.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||
}
|
||||
} else {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field WakeOnLan", wireType)
|
||||
}
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
|
||||
@ -9614,6 +9739,75 @@ func (m *EthernetStatusSpec) UnmarshalVT(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 10:
|
||||
if wireType == 0 {
|
||||
var v enums.NethelpersWOLMode
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protohelpers.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||
} else if wireType == 2 {
|
||||
var packedLen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protohelpers.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
packedLen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if packedLen < 0 {
|
||||
return protohelpers.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + packedLen
|
||||
if postIndex < 0 {
|
||||
return protohelpers.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
var elementCount int
|
||||
if elementCount != 0 && len(m.WakeOnLan) == 0 {
|
||||
m.WakeOnLan = make([]enums.NethelpersWOLMode, 0, elementCount)
|
||||
}
|
||||
for iNdEx < postIndex {
|
||||
var v enums.NethelpersWOLMode
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protohelpers.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= enums.NethelpersWOLMode(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.WakeOnLan = append(m.WakeOnLan, v)
|
||||
}
|
||||
} else {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field WakeOnLan", wireType)
|
||||
}
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
|
||||
|
@ -71,6 +71,7 @@ type EthernetConfig interface {
|
||||
Rings() EthernetRingsConfig
|
||||
Channels() EthernetChannelsConfig
|
||||
Features() map[string]bool
|
||||
WakeOnLAN() []nethelpers.WOLMode
|
||||
}
|
||||
|
||||
// EthernetRingsConfig defines a configuration for Ethernet link rings.
|
||||
|
@ -849,6 +849,16 @@
|
||||
"description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n",
|
||||
"markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
||||
"x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||
},
|
||||
"wakeOnLan": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array",
|
||||
"title": "wakeOnLan",
|
||||
"description": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to ethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt; command.\n",
|
||||
"markdownDescription": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s \u003clink\u003e wol \u003coptions\u003e` command.",
|
||||
"x-intellij-html-description": "\u003cp\u003eWake-on-LAN modes to enable.\u003c/p\u003e\n\n\u003cp\u003eIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt;\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
|
@ -101,6 +101,10 @@ func (o *EthernetConfigV1Alpha1) DeepCopy() *EthernetConfigV1Alpha1 {
|
||||
*cp.ChannelsConfig.Combined = *o.ChannelsConfig.Combined
|
||||
}
|
||||
}
|
||||
if o.WakeOnLANConfig != nil {
|
||||
cp.WakeOnLANConfig = make([]nethelpers.WOLMode, len(o.WakeOnLANConfig))
|
||||
copy(cp.WakeOnLANConfig, o.WakeOnLANConfig)
|
||||
}
|
||||
return &cp
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@ import (
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/internal/registry"
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/validation"
|
||||
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||
)
|
||||
|
||||
// EthernetKind is a Ethernet config document kind.
|
||||
@ -69,6 +70,30 @@ type EthernetConfigV1Alpha1 struct {
|
||||
//
|
||||
// This is similar to `ethtool -L` command.
|
||||
ChannelsConfig *EthernetChannelsConfig `yaml:"channels,omitempty"`
|
||||
// description: |
|
||||
// Wake-on-LAN modes to enable.
|
||||
//
|
||||
// If this field is omitted, Wake-on-LAN configuration is not changed.
|
||||
// An empty list disables Wake-on-LAN.
|
||||
//
|
||||
// This is similar to `ethtool -s <link> wol <options>` command.
|
||||
// values:
|
||||
// - "phy"
|
||||
// - "unicast"
|
||||
// - "multicast"
|
||||
// - "broadcast"
|
||||
// - "arp"
|
||||
// - "magic"
|
||||
// - "magicsecure"
|
||||
// - "filter"
|
||||
// schema:
|
||||
// type: array
|
||||
// items:
|
||||
// type: string
|
||||
// examples:
|
||||
// - value: >
|
||||
// []nethelpers.WOLMode{nethelpers.WOLModeUnicast, nethelpers.WOLModeMagic}
|
||||
WakeOnLANConfig []nethelpers.WOLMode `yaml:"wakeOnLan,omitempty"`
|
||||
}
|
||||
|
||||
// EthernetRingsConfig is a configuration for Ethernet link rings.
|
||||
@ -172,6 +197,11 @@ func (s *EthernetConfigV1Alpha1) Features() map[string]bool {
|
||||
return s.FeaturesConfig
|
||||
}
|
||||
|
||||
// WakeOnLAN implements config.EthernetConfig interface.
|
||||
func (s *EthernetConfigV1Alpha1) WakeOnLAN() []nethelpers.WOLMode {
|
||||
return s.WakeOnLANConfig
|
||||
}
|
||||
|
||||
// Validate implements config.Validator interface.
|
||||
func (s *EthernetConfigV1Alpha1) Validate(validation.RuntimeMode, ...validation.Option) ([]string, error) {
|
||||
if s.MetaName == "" {
|
||||
|
@ -16,6 +16,7 @@ import (
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/types/network"
|
||||
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||
)
|
||||
|
||||
//go:embed testdata/ethernetconfig.yaml
|
||||
@ -34,6 +35,10 @@ func TestEthernetConfigMarshalStability(t *testing.T) {
|
||||
cfg.ChannelsConfig = &network.EthernetChannelsConfig{
|
||||
Combined: pointer.To[uint32](1),
|
||||
}
|
||||
cfg.WakeOnLANConfig = []nethelpers.WOLMode{
|
||||
nethelpers.WOLModeUnicast,
|
||||
nethelpers.WOLModeMulticast,
|
||||
}
|
||||
|
||||
marshaled, err := encoder.NewEncoder(cfg, encoder.WithComments(encoder.CommentsDisabled)).Encode()
|
||||
require.NoError(t, err)
|
||||
@ -67,6 +72,10 @@ func TestEthernetConfigUnmarshal(t *testing.T) {
|
||||
ChannelsConfig: &network.EthernetChannelsConfig{
|
||||
Combined: pointer.To[uint32](1),
|
||||
},
|
||||
WakeOnLANConfig: []nethelpers.WOLMode{
|
||||
nethelpers.WOLModeUnicast,
|
||||
nethelpers.WOLModeMulticast,
|
||||
},
|
||||
}, docs[0])
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"net/netip"
|
||||
|
||||
"github.com/siderolabs/talos/pkg/machinery/config/encoder"
|
||||
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||
)
|
||||
|
||||
func (DefaultActionConfigV1Alpha1) Doc() *encoder.Doc {
|
||||
@ -72,11 +73,30 @@ func (EthernetConfigV1Alpha1) Doc() *encoder.Doc {
|
||||
Description: "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
||||
Comments: [3]string{"" /* encoder.HeadComment */, "Configuration for Ethernet link channels." /* encoder.LineComment */, "" /* encoder.FootComment */},
|
||||
},
|
||||
{
|
||||
Name: "wakeOnLan",
|
||||
Type: "[]WOLMode",
|
||||
Note: "",
|
||||
Description: "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s <link> wol <options>` command.",
|
||||
Comments: [3]string{"" /* encoder.HeadComment */, "Wake-on-LAN modes to enable." /* encoder.LineComment */, "" /* encoder.FootComment */},
|
||||
Values: []string{
|
||||
"phy",
|
||||
"unicast",
|
||||
"multicast",
|
||||
"broadcast",
|
||||
"arp",
|
||||
"magic",
|
||||
"magicsecure",
|
||||
"filter",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
doc.AddExample("", exampleEthernetConfigV1Alpha1())
|
||||
|
||||
doc.Fields[5].AddExample("", []nethelpers.WOLMode{nethelpers.WOLModeUnicast, nethelpers.WOLModeMagic})
|
||||
|
||||
return doc
|
||||
}
|
||||
|
||||
|
@ -7,3 +7,6 @@ rings:
|
||||
rx: 16
|
||||
channels:
|
||||
combined: 1
|
||||
wakeOnLan:
|
||||
- unicast
|
||||
- multicast
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Code generated by "enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol -linecomment -text"; DO NOT EDIT.
|
||||
// Code generated by "enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol,WOLMode -linecomment -text"; DO NOT EDIT.
|
||||
|
||||
package nethelpers
|
||||
|
||||
@ -3499,3 +3499,136 @@ func (i *VLANProtocol) UnmarshalText(text []byte) error {
|
||||
*i, err = VLANProtocolString(string(text))
|
||||
return err
|
||||
}
|
||||
|
||||
const (
|
||||
_WOLModeName_0 = "phyunicast"
|
||||
_WOLModeLowerName_0 = "phyunicast"
|
||||
_WOLModeName_1 = "multicast"
|
||||
_WOLModeLowerName_1 = "multicast"
|
||||
_WOLModeName_2 = "broadcast"
|
||||
_WOLModeLowerName_2 = "broadcast"
|
||||
_WOLModeName_3 = "magic"
|
||||
_WOLModeLowerName_3 = "magic"
|
||||
_WOLModeName_4 = "magicsecure"
|
||||
_WOLModeLowerName_4 = "magicsecure"
|
||||
_WOLModeName_5 = "filter"
|
||||
_WOLModeLowerName_5 = "filter"
|
||||
)
|
||||
|
||||
var (
|
||||
_WOLModeIndex_0 = [...]uint8{0, 3, 10}
|
||||
_WOLModeIndex_1 = [...]uint8{0, 9}
|
||||
_WOLModeIndex_2 = [...]uint8{0, 9}
|
||||
_WOLModeIndex_3 = [...]uint8{0, 5}
|
||||
_WOLModeIndex_4 = [...]uint8{0, 11}
|
||||
_WOLModeIndex_5 = [...]uint8{0, 6}
|
||||
)
|
||||
|
||||
func (i WOLMode) String() string {
|
||||
switch {
|
||||
case 1 <= i && i <= 2:
|
||||
i -= 1
|
||||
return _WOLModeName_0[_WOLModeIndex_0[i]:_WOLModeIndex_0[i+1]]
|
||||
case i == 4:
|
||||
return _WOLModeName_1
|
||||
case i == 8:
|
||||
return _WOLModeName_2
|
||||
case i == 32:
|
||||
return _WOLModeName_3
|
||||
case i == 64:
|
||||
return _WOLModeName_4
|
||||
case i == 128:
|
||||
return _WOLModeName_5
|
||||
default:
|
||||
return fmt.Sprintf("WOLMode(%d)", i)
|
||||
}
|
||||
}
|
||||
|
||||
// An "invalid array index" compiler error signifies that the constant values have changed.
|
||||
// Re-run the stringer command to generate them again.
|
||||
func _WOLModeNoOp() {
|
||||
var x [1]struct{}
|
||||
_ = x[WOLModePhy-(1)]
|
||||
_ = x[WOLModeUnicast-(2)]
|
||||
_ = x[WOLModeMulticast-(4)]
|
||||
_ = x[WOLModeBroadcast-(8)]
|
||||
_ = x[WOLModeMagic-(32)]
|
||||
_ = x[WOLModeMagicSecure-(64)]
|
||||
_ = x[WOLModeFilter-(128)]
|
||||
}
|
||||
|
||||
var _WOLModeValues = []WOLMode{WOLModePhy, WOLModeUnicast, WOLModeMulticast, WOLModeBroadcast, WOLModeMagic, WOLModeMagicSecure, WOLModeFilter}
|
||||
|
||||
var _WOLModeNameToValueMap = map[string]WOLMode{
|
||||
_WOLModeName_0[0:3]: WOLModePhy,
|
||||
_WOLModeLowerName_0[0:3]: WOLModePhy,
|
||||
_WOLModeName_0[3:10]: WOLModeUnicast,
|
||||
_WOLModeLowerName_0[3:10]: WOLModeUnicast,
|
||||
_WOLModeName_1[0:9]: WOLModeMulticast,
|
||||
_WOLModeLowerName_1[0:9]: WOLModeMulticast,
|
||||
_WOLModeName_2[0:9]: WOLModeBroadcast,
|
||||
_WOLModeLowerName_2[0:9]: WOLModeBroadcast,
|
||||
_WOLModeName_3[0:5]: WOLModeMagic,
|
||||
_WOLModeLowerName_3[0:5]: WOLModeMagic,
|
||||
_WOLModeName_4[0:11]: WOLModeMagicSecure,
|
||||
_WOLModeLowerName_4[0:11]: WOLModeMagicSecure,
|
||||
_WOLModeName_5[0:6]: WOLModeFilter,
|
||||
_WOLModeLowerName_5[0:6]: WOLModeFilter,
|
||||
}
|
||||
|
||||
var _WOLModeNames = []string{
|
||||
_WOLModeName_0[0:3],
|
||||
_WOLModeName_0[3:10],
|
||||
_WOLModeName_1[0:9],
|
||||
_WOLModeName_2[0:9],
|
||||
_WOLModeName_3[0:5],
|
||||
_WOLModeName_4[0:11],
|
||||
_WOLModeName_5[0:6],
|
||||
}
|
||||
|
||||
// WOLModeString retrieves an enum value from the enum constants string name.
|
||||
// Throws an error if the param is not part of the enum.
|
||||
func WOLModeString(s string) (WOLMode, error) {
|
||||
if val, ok := _WOLModeNameToValueMap[s]; ok {
|
||||
return val, nil
|
||||
}
|
||||
|
||||
if val, ok := _WOLModeNameToValueMap[strings.ToLower(s)]; ok {
|
||||
return val, nil
|
||||
}
|
||||
return 0, fmt.Errorf("%s does not belong to WOLMode values", s)
|
||||
}
|
||||
|
||||
// WOLModeValues returns all values of the enum
|
||||
func WOLModeValues() []WOLMode {
|
||||
return _WOLModeValues
|
||||
}
|
||||
|
||||
// WOLModeStrings returns a slice of all String values of the enum
|
||||
func WOLModeStrings() []string {
|
||||
strs := make([]string, len(_WOLModeNames))
|
||||
copy(strs, _WOLModeNames)
|
||||
return strs
|
||||
}
|
||||
|
||||
// IsAWOLMode returns "true" if the value is listed in the enum definition. "false" otherwise
|
||||
func (i WOLMode) IsAWOLMode() bool {
|
||||
for _, v := range _WOLModeValues {
|
||||
if i == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// MarshalText implements the encoding.TextMarshaler interface for WOLMode
|
||||
func (i WOLMode) MarshalText() ([]byte, error) {
|
||||
return []byte(i.String()), nil
|
||||
}
|
||||
|
||||
// UnmarshalText implements the encoding.TextUnmarshaler interface for WOLMode
|
||||
func (i *WOLMode) UnmarshalText(text []byte) error {
|
||||
var err error
|
||||
*i, err = WOLModeString(string(text))
|
||||
return err
|
||||
}
|
||||
|
@ -5,5 +5,5 @@
|
||||
// Package nethelpers provides types and type wrappers to support network resources.
|
||||
package nethelpers
|
||||
|
||||
//go:generate go tool github.com/dmarkham/enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol -linecomment -text
|
||||
//go:generate go tool github.com/dmarkham/enumer -type=ARPAllTargets,ARPValidate,AddressFlag,AddressSortAlgorithm,ADSelect,AutoHostnameKind,BondMode,BondXmitHashPolicy,ConntrackState,DefaultAction,Duplex,Family,LACPRate,LinkFlag,LinkType,MatchOperator,NfTablesChainHook,NfTablesChainPriority,NfTablesVerdict,OperationalState,Port,PrimaryReselect,Protocol,RouteFlag,RouteProtocol,RouteType,RoutingTable,Scope,Status,VLANProtocol,WOLMode -linecomment -text
|
||||
//go:generate go tool github.com/dmarkham/enumer -type=FailOverMAC -linecomment
|
||||
|
29
pkg/machinery/nethelpers/wol.go
Normal file
29
pkg/machinery/nethelpers/wol.go
Normal file
@ -0,0 +1,29 @@
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
package nethelpers
|
||||
|
||||
import "github.com/mdlayher/ethtool"
|
||||
|
||||
// WOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||
type WOLMode int
|
||||
|
||||
// Constants copied from ethtool to provide Stringer interface.
|
||||
//
|
||||
//structprotogen:gen_enum
|
||||
const (
|
||||
WOLModePhy WOLMode = WOLMode(ethtool.PHY) // phy
|
||||
WOLModeUnicast WOLMode = WOLMode(ethtool.Unicast) // unicast
|
||||
WOLModeMulticast WOLMode = WOLMode(ethtool.Multicast) // multicast
|
||||
WOLModeBroadcast WOLMode = WOLMode(ethtool.Broadcast) // broadcast
|
||||
WOLModeMagic WOLMode = WOLMode(ethtool.Magic) // magic
|
||||
WOLModeMagicSecure WOLMode = WOLMode(ethtool.MagicSecure) // magicsecure
|
||||
WOLModeFilter WOLMode = WOLMode(ethtool.Filter) // filter
|
||||
)
|
||||
|
||||
// WOLModeMin is the minimum valid WOLMode.
|
||||
const WOLModeMin = WOLModePhy
|
||||
|
||||
// WOLModeMax is the maximum valid WOLMode.
|
||||
const WOLModeMax = WOLModeFilter
|
@ -95,6 +95,10 @@ func (o EthernetSpecSpec) DeepCopy() EthernetSpecSpec {
|
||||
cp.Channels.Combined = new(uint32)
|
||||
*cp.Channels.Combined = *o.Channels.Combined
|
||||
}
|
||||
if o.WakeOnLAN != nil {
|
||||
cp.WakeOnLAN = make([]nethelpers.WOLMode, len(o.WakeOnLAN))
|
||||
copy(cp.WakeOnLAN, o.WakeOnLAN)
|
||||
}
|
||||
return cp
|
||||
}
|
||||
|
||||
@ -217,6 +221,10 @@ func (o EthernetStatusSpec) DeepCopy() EthernetStatusSpec {
|
||||
*cp.Channels.Combined = *o.Channels.Combined
|
||||
}
|
||||
}
|
||||
if o.WakeOnLAN != nil {
|
||||
cp.WakeOnLAN = make([]nethelpers.WOLMode, len(o.WakeOnLAN))
|
||||
copy(cp.WakeOnLAN, o.WakeOnLAN)
|
||||
}
|
||||
return cp
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"github.com/cosi-project/runtime/pkg/resource/protobuf"
|
||||
"github.com/cosi-project/runtime/pkg/resource/typed"
|
||||
|
||||
"github.com/siderolabs/talos/pkg/machinery/nethelpers"
|
||||
"github.com/siderolabs/talos/pkg/machinery/proto"
|
||||
)
|
||||
|
||||
@ -23,9 +24,10 @@ type EthernetSpec = typed.Resource[EthernetSpecSpec, EthernetSpecExtension]
|
||||
//
|
||||
//gotagsrewrite:gen
|
||||
type EthernetSpecSpec struct {
|
||||
Rings EthernetRingsSpec `yaml:"rings,omitempty" protobuf:"1"`
|
||||
Features map[string]bool `yaml:"features,omitempty" protobuf:"2"`
|
||||
Channels EthernetChannelsSpec `yaml:"channels,omitempty" protobuf:"3"`
|
||||
Rings EthernetRingsSpec `yaml:"rings,omitempty" protobuf:"1"`
|
||||
Features map[string]bool `yaml:"features,omitempty" protobuf:"2"`
|
||||
Channels EthernetChannelsSpec `yaml:"channels,omitempty" protobuf:"3"`
|
||||
WakeOnLAN []nethelpers.WOLMode `yaml:"wakeOnLan,omitempty" protobuf:"4"`
|
||||
}
|
||||
|
||||
// EthernetRingsSpec describes config of Ethernet rings.
|
||||
|
@ -34,6 +34,7 @@ type EthernetStatusSpec struct {
|
||||
Rings *EthernetRingsStatus `yaml:"rings,omitempty" protobuf:"7"`
|
||||
Features EthernetFeatureStatusList `yaml:"features,omitempty" protobuf:"8"`
|
||||
Channels *EthernetChannelsStatus `yaml:"channels,omitempty" protobuf:"9"`
|
||||
WakeOnLAN []nethelpers.WOLMode `yaml:"wakeOnLAN,omitempty" protobuf:"10"`
|
||||
}
|
||||
|
||||
// EthernetFeatureStatusList is a list of EthernetFeatureStatus.
|
||||
|
@ -120,7 +120,7 @@ func launchVM(config *LaunchConfig) error {
|
||||
"-netdev", getNetdevParams(config.Network, "net0"),
|
||||
"-device", fmt.Sprintf("virtio-net-pci,netdev=net0,mac=%s", config.VMMac),
|
||||
// TODO: uncomment the following line to get another eth interface not connected to anything
|
||||
// "-nic", "tap,model=virtio-net-pci",
|
||||
// "-nic", "tap,model=e1000,script=no,downscript=no",
|
||||
"-device", "virtio-rng-pci",
|
||||
"-device", "virtio-balloon,deflate-on-oom=on",
|
||||
"-monitor", fmt.Sprintf("unix:%s,server,nowait", config.MonitorPath),
|
||||
|
@ -288,6 +288,7 @@ description: Talos gRPC API reference.
|
||||
- [NethelpersRoutingTable](#talos.resource.definitions.enums.NethelpersRoutingTable)
|
||||
- [NethelpersScope](#talos.resource.definitions.enums.NethelpersScope)
|
||||
- [NethelpersVLANProtocol](#talos.resource.definitions.enums.NethelpersVLANProtocol)
|
||||
- [NethelpersWOLMode](#talos.resource.definitions.enums.NethelpersWOLMode)
|
||||
- [NetworkConfigLayer](#talos.resource.definitions.enums.NetworkConfigLayer)
|
||||
- [NetworkOperator](#talos.resource.definitions.enums.NetworkOperator)
|
||||
- [RuntimeFIPSState](#talos.resource.definitions.enums.RuntimeFIPSState)
|
||||
@ -5120,6 +5121,24 @@ NethelpersVLANProtocol is a VLAN protocol.
|
||||
|
||||
|
||||
|
||||
<a name="talos.resource.definitions.enums.NethelpersWOLMode"></a>
|
||||
|
||||
### NethelpersWOLMode
|
||||
NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
|
||||
|
||||
| Name | Number | Description |
|
||||
| ---- | ------ | ----------- |
|
||||
| NETHELPERS_WOLMODE_UNSPECIFIED | 0 | |
|
||||
| WOL_MODE_PHY | 1 | |
|
||||
| WOL_MODE_UNICAST | 2 | |
|
||||
| WOL_MODE_MULTICAST | 4 | |
|
||||
| WOL_MODE_BROADCAST | 8 | |
|
||||
| WOL_MODE_MAGIC | 32 | |
|
||||
| WOL_MODE_MAGIC_SECURE | 64 | |
|
||||
| WOL_MODE_FILTER | 128 | |
|
||||
|
||||
|
||||
|
||||
<a name="talos.resource.definitions.enums.NetworkConfigLayer"></a>
|
||||
|
||||
### NetworkConfigLayer
|
||||
@ -8266,6 +8285,7 @@ EthernetSpecSpec describes config of Ethernet link.
|
||||
| rings | [EthernetRingsSpec](#talos.resource.definitions.network.EthernetRingsSpec) | | |
|
||||
| features | [EthernetSpecSpec.FeaturesEntry](#talos.resource.definitions.network.EthernetSpecSpec.FeaturesEntry) | repeated | |
|
||||
| channels | [EthernetChannelsSpec](#talos.resource.definitions.network.EthernetChannelsSpec) | | |
|
||||
| wake_on_lan | [talos.resource.definitions.enums.NethelpersWOLMode](#talos.resource.definitions.enums.NethelpersWOLMode) | repeated | |
|
||||
|
||||
|
||||
|
||||
@ -8305,6 +8325,7 @@ EthernetStatusSpec describes status of rendered secrets.
|
||||
| rings | [EthernetRingsStatus](#talos.resource.definitions.network.EthernetRingsStatus) | | |
|
||||
| features | [EthernetFeatureStatus](#talos.resource.definitions.network.EthernetFeatureStatus) | repeated | |
|
||||
| channels | [EthernetChannelsStatus](#talos.resource.definitions.network.EthernetChannelsStatus) | | |
|
||||
| wake_on_lan | [talos.resource.definitions.enums.NethelpersWOLMode](#talos.resource.definitions.enums.NethelpersWOLMode) | repeated | |
|
||||
|
||||
|
||||
|
||||
|
@ -26,6 +26,11 @@ rings:
|
||||
# Configuration for Ethernet link channels.
|
||||
channels:
|
||||
rx: 4 # Number of RX channels.
|
||||
|
||||
# # Wake-on-LAN modes to enable.
|
||||
# wakeOnLan:
|
||||
# - unicast
|
||||
# - magic
|
||||
{{< /highlight >}}
|
||||
|
||||
|
||||
@ -35,6 +40,11 @@ channels:
|
||||
|`features` |map[string]bool |Configuration for Ethernet features.<br><br>Set of features available and whether they can be enabled or disabled is driver specific.<br>Use `talosctl get ethernetstatus <link> -o yaml` to get the list of available features and<br>their current status. | |
|
||||
|`rings` |<a href="#EthernetConfig.rings">EthernetRingsConfig</a> |Configuration for Ethernet link rings.<br><br>This is similar to `ethtool -G` command. | |
|
||||
|`channels` |<a href="#EthernetConfig.channels">EthernetChannelsConfig</a> |Configuration for Ethernet link channels.<br><br>This is similar to `ethtool -L` command. | |
|
||||
|`wakeOnLan` |[]WOLMode |Wake-on-LAN modes to enable.<br><br>If this field is omitted, Wake-on-LAN configuration is not changed.<br>An empty list disables Wake-on-LAN.<br><br>This is similar to `ethtool -s <link> wol <options>` command. <details><summary>Show example(s)</summary>{{< highlight yaml >}}
|
||||
wakeOnLan:
|
||||
- unicast
|
||||
- magic
|
||||
{{< /highlight >}}</details> |`phy`<br />`unicast`<br />`multicast`<br />`broadcast`<br />`arp`<br />`magic`<br />`magicsecure`<br />`filter`<br /> |
|
||||
|
||||
|
||||
|
||||
|
@ -849,6 +849,16 @@
|
||||
"description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n",
|
||||
"markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.",
|
||||
"x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||
},
|
||||
"wakeOnLan": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array",
|
||||
"title": "wakeOnLan",
|
||||
"description": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to ethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt; command.\n",
|
||||
"markdownDescription": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s \u003clink\u003e wol \u003coptions\u003e` command.",
|
||||
"x-intellij-html-description": "\u003cp\u003eWake-on-LAN modes to enable.\u003c/p\u003e\n\n\u003cp\u003eIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt;\u003c/code\u003e command.\u003c/p\u003e\n"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
|
Loading…
x
Reference in New Issue
Block a user