iPXE
netdev_settings.c File Reference

Network device configuration settings. More...

#include <string.h>
#include <errno.h>
#include <byteswap.h>
#include <ipxe/dhcp.h>
#include <ipxe/dhcpopts.h>
#include <ipxe/settings.h>
#include <ipxe/device.h>
#include <ipxe/netdevice.h>
#include <ipxe/init.h>

Go to the source code of this file.

Data Structures

struct  netdev_setting_operation
 A network device setting operation. More...

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
const struct setting mac_setting __setting (SETTING_NETDEV, mac)
 Network device predefined settings.
const struct setting hwaddr_setting __setting (SETTING_NETDEV, hwaddr)
const struct setting bustype_setting __setting (SETTING_NETDEV, bustype)
const struct setting busloc_setting __setting (SETTING_NETDEV, busloc)
const struct setting busid_setting __setting (SETTING_NETDEV, busid)
const struct setting linktype_setting __setting (SETTING_NETDEV, linktype)
const struct setting chip_setting __setting (SETTING_NETDEV, chip)
const struct setting ifname_setting __setting (SETTING_NETDEV, ifname)
const struct setting mtu_setting __setting (SETTING_NETDEV, mtu)
static int netdev_store_mac (struct net_device *netdev, const void *data, size_t len)
 Store link-layer address setting.
static int netdev_fetch_mac (struct net_device *netdev, void *data, size_t len)
 Fetch link-layer address setting.
static int netdev_fetch_hwaddr (struct net_device *netdev, void *data, size_t len)
 Fetch hardware address setting.
static int netdev_fetch_bustype (struct net_device *netdev, void *data, size_t len)
 Fetch bus type setting.
static int netdev_fetch_busloc (struct net_device *netdev, void *data, size_t len)
 Fetch bus location setting.
static int netdev_fetch_busid (struct net_device *netdev, void *data, size_t len)
 Fetch bus ID setting.
static int netdev_fetch_linktype (struct net_device *netdev, void *data, size_t len)
 Fetch link layer type setting.
static int netdev_fetch_chip (struct net_device *netdev, void *data, size_t len)
 Fetch chip setting.
static int netdev_fetch_ifname (struct net_device *netdev, void *data, size_t len)
 Fetch ifname setting.
static int netdev_store (struct settings *settings, const struct setting *setting, const void *data, size_t len)
 Store value of network device setting.
static int netdev_fetch (struct settings *settings, struct setting *setting, void *data, size_t len)
 Fetch value of network device setting.
static void netdev_clear (struct settings *settings)
 Clear network device settings.
static struct settingsnetdev_redirect (struct settings *settings)
 Redirect "netX" settings block.
static void netdev_redirect_settings_init (void)
 Initialise "netX" settings.
struct init_fn netdev_redirect_settings_init_fn __init_fn (INIT_LATE)
 "netX" settings initialiser
static int apply_netdev_settings (void)
 Apply network device settings.

Variables

static struct netdev_setting_operation netdev_setting_operations []
 Network device settings.
struct settings_operations netdev_settings_operations
 Network device configuration settings operations.
static struct settings_operations netdev_redirect_settings_operations
 "netX" settings operations
static struct settings netdev_redirect_settings
 "netX" settings
struct settings_applicator netdev_applicator __settings_applicator
 Network device settings applicator.

Detailed Description

Network device configuration settings.

Definition in file netdev_settings.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ __setting() [1/9]

const struct setting mac_setting __setting ( SETTING_NETDEV ,
mac  )

Network device predefined settings.

References __setting, mac, and SETTING_NETDEV.

◆ __setting() [2/9]

const struct setting hwaddr_setting __setting ( SETTING_NETDEV ,
hwaddr  )

References __setting, and SETTING_NETDEV.

◆ __setting() [3/9]

const struct setting bustype_setting __setting ( SETTING_NETDEV ,
bustype  )

References __setting, and SETTING_NETDEV.

◆ __setting() [4/9]

const struct setting busloc_setting __setting ( SETTING_NETDEV ,
busloc  )

References __setting, and SETTING_NETDEV.

◆ __setting() [5/9]

const struct setting busid_setting __setting ( SETTING_NETDEV ,
busid  )

References __setting, and SETTING_NETDEV.

◆ __setting() [6/9]

const struct setting linktype_setting __setting ( SETTING_NETDEV ,
linktype  )

References __setting, and SETTING_NETDEV.

◆ __setting() [7/9]

const struct setting chip_setting __setting ( SETTING_NETDEV ,
chip  )

References __setting, and SETTING_NETDEV.

◆ __setting() [8/9]

const struct setting ifname_setting __setting ( SETTING_NETDEV ,
ifname  )

References __setting, and SETTING_NETDEV.

◆ __setting() [9/9]

const struct setting mtu_setting __setting ( SETTING_NETDEV ,
mtu  )

References __setting, DHCP_MTU, mtu, and SETTING_NETDEV.

◆ netdev_store_mac()

int netdev_store_mac ( struct net_device * netdev,
const void * data,
size_t len )
static

Store link-layer address setting.

Parameters
netdevNetwork device
dataSetting data, or NULL to clear setting
lenLength of setting data
Return values
rcReturn status code

Definition at line 99 of file netdev_settings.c.

100 {
101 struct ll_protocol *ll_protocol = netdev->ll_protocol;
102
103 /* Record new MAC address */
104 if ( data ) {
105 if ( len != netdev->ll_protocol->ll_addr_len )
106 return -EINVAL;
107 memcpy ( netdev->ll_addr, data, len );
108 } else {
109 /* Reset MAC address if clearing setting */
110 ll_protocol->init_addr ( netdev->hw_addr, netdev->ll_addr );
111 }
112
113 return 0;
114}
ring len
Length.
Definition dwmac.h:226
uint8_t data[48]
Additional event data.
Definition ena.h:11
static struct net_device * netdev
Definition gdbudp.c:53
#define EINVAL
Invalid argument.
Definition errno.h:429
void * memcpy(void *dest, const void *src, size_t len) __nonnull
A link-layer protocol.
Definition netdevice.h:115
void(* init_addr)(const void *hw_addr, void *ll_addr)
Initialise link-layer address.
Definition netdevice.h:151

References data, EINVAL, ll_protocol::init_addr, len, memcpy(), and netdev.

◆ netdev_fetch_mac()

int netdev_fetch_mac ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch link-layer address setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 124 of file netdev_settings.c.

125 {
126 size_t max_len = netdev->ll_protocol->ll_addr_len;
127
128 if ( len > max_len )
129 len = max_len;
130 memcpy ( data, netdev->ll_addr, len );
131 return max_len;
132}

References data, len, memcpy(), and netdev.

◆ netdev_fetch_hwaddr()

int netdev_fetch_hwaddr ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch hardware address setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 142 of file netdev_settings.c.

143 {
144 size_t max_len = netdev->ll_protocol->hw_addr_len;
145
146 if ( len > max_len )
147 len = max_len;
148 memcpy ( data, netdev->hw_addr, len );
149 return max_len;
150}

References data, len, memcpy(), and netdev.

◆ netdev_fetch_bustype()

int netdev_fetch_bustype ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch bus type setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 160 of file netdev_settings.c.

161 {
162 static const char *bustypes[] = {
163 [BUS_TYPE_PCI] = "PCI",
164 [BUS_TYPE_ISAPNP] = "ISAPNP",
165 [BUS_TYPE_EISA] = "EISA",
166 [BUS_TYPE_MCA] = "MCA",
167 [BUS_TYPE_ISA] = "ISA",
168 [BUS_TYPE_TAP] = "TAP",
169 [BUS_TYPE_EFI] = "EFI",
170 [BUS_TYPE_XEN] = "XEN",
171 [BUS_TYPE_HV] = "HV",
172 [BUS_TYPE_USB] = "USB",
173 [BUS_TYPE_DT] = "DT",
174 };
175 struct device_description *desc = &netdev->dev->desc;
176 const char *bustype;
177
178 assert ( desc->bus_type < ( sizeof ( bustypes ) /
179 sizeof ( bustypes[0] ) ) );
180 bustype = bustypes[desc->bus_type];
181 if ( ! bustype )
182 return -ENOENT;
183 strncpy ( data, bustype, len );
184 return strlen ( bustype );
185}
#define assert(condition)
Assert a condition at run-time.
Definition assert.h:50
#define BUS_TYPE_PCI
PCI bus type.
Definition device.h:44
#define BUS_TYPE_ISAPNP
ISAPnP bus type.
Definition device.h:47
#define BUS_TYPE_EISA
EISA bus type.
Definition device.h:50
#define BUS_TYPE_USB
USB bus type.
Definition device.h:71
#define BUS_TYPE_EFI
EFI bus type.
Definition device.h:62
#define BUS_TYPE_ISA
ISA bus type.
Definition device.h:56
#define BUS_TYPE_MCA
MCA bus type.
Definition device.h:53
#define BUS_TYPE_TAP
TAP bus type.
Definition device.h:59
#define BUS_TYPE_XEN
Xen bus type.
Definition device.h:65
#define BUS_TYPE_DT
Devicetree bus type.
Definition device.h:74
#define BUS_TYPE_HV
Hyper-V bus type.
Definition device.h:68
struct ena_llq_option desc
Descriptor counts.
Definition ena.h:9
#define ENOENT
No such file or directory.
Definition errno.h:515
size_t strlen(const char *src)
Get length of string.
Definition string.c:244
char * strncpy(char *dest, const char *src, size_t max)
Copy string.
Definition string.c:361
A hardware device description.
Definition device.h:20

References assert, BUS_TYPE_DT, BUS_TYPE_EFI, BUS_TYPE_EISA, BUS_TYPE_HV, BUS_TYPE_ISA, BUS_TYPE_ISAPNP, BUS_TYPE_MCA, BUS_TYPE_PCI, BUS_TYPE_TAP, BUS_TYPE_USB, BUS_TYPE_XEN, data, desc, ENOENT, len, netdev, strlen(), and strncpy().

◆ netdev_fetch_busloc()

int netdev_fetch_busloc ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch bus location setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 195 of file netdev_settings.c.

196 {
197 struct device_description *desc = &netdev->dev->desc;
198 uint32_t busloc;
199
200 busloc = cpu_to_be32 ( desc->location );
201 if ( len > sizeof ( busloc ) )
202 len = sizeof ( busloc );
203 memcpy ( data, &busloc, len );
204 return sizeof ( busloc );
205}
unsigned int uint32_t
Definition stdint.h:12
#define cpu_to_be32(value)
Definition byteswap.h:111

References cpu_to_be32, data, desc, len, memcpy(), and netdev.

◆ netdev_fetch_busid()

int netdev_fetch_busid ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch bus ID setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 215 of file netdev_settings.c.

216 {
217 struct device_description *desc = &netdev->dev->desc;
218 struct dhcp_netdev_desc dhcp_desc;
219
220 dhcp_desc.type = desc->bus_type;
221 dhcp_desc.vendor = htons ( desc->vendor );
222 dhcp_desc.device = htons ( desc->device );
223 if ( len > sizeof ( dhcp_desc ) )
224 len = sizeof ( dhcp_desc );
225 memcpy ( data, &dhcp_desc, len );
226 return sizeof ( dhcp_desc );
227}
#define htons(value)
Definition byteswap.h:136
Network device descriptor.
Definition dhcp.h:449
uint8_t type
Bus type ID.
Definition dhcp.h:451

References data, desc, dhcp_netdev_desc::device, htons, len, memcpy(), netdev, dhcp_netdev_desc::type, and dhcp_netdev_desc::vendor.

◆ netdev_fetch_linktype()

int netdev_fetch_linktype ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch link layer type setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 237 of file netdev_settings.c.

238 {
239 const char *linktype = netdev->ll_protocol->name;
240
241 strncpy ( data, linktype, len );
242 return strlen ( linktype );
243}
linktype
Definition 3c90x.h:240

References data, len, netdev, strlen(), and strncpy().

◆ netdev_fetch_chip()

int netdev_fetch_chip ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch chip setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 253 of file netdev_settings.c.

254 {
255 const char *chip = netdev->dev->driver_name;
256
257 strncpy ( data, chip, len );
258 return strlen ( chip );
259}

References data, len, netdev, strlen(), and strncpy().

◆ netdev_fetch_ifname()

int netdev_fetch_ifname ( struct net_device * netdev,
void * data,
size_t len )
static

Fetch ifname setting.

Parameters
netdevNetwork device
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 269 of file netdev_settings.c.

270 {
271 const char *ifname = netdev->name;
272
273 strncpy ( data, ifname, len );
274 return strlen ( ifname );
275}

References data, len, netdev, strlen(), and strncpy().

◆ netdev_store()

int netdev_store ( struct settings * settings,
const struct setting * setting,
const void * data,
size_t len )
static

Store value of network device setting.

Parameters
settingsSettings block
settingSetting to store
dataSetting data, or NULL to clear setting
lenLength of setting data
Return values
rcReturn status code

Definition at line 321 of file netdev_settings.c.

323 {
325 settings.settings );
327 unsigned int i;
328
329 /* Handle network device-specific settings */
330 for ( i = 0 ; i < ( sizeof ( netdev_setting_operations ) /
331 sizeof ( netdev_setting_operations[0] ) ) ; i++ ) {
333 if ( setting_cmp ( setting, op->setting ) == 0 ) {
334 if ( op->store ) {
335 return op->store ( netdev, data, len );
336 } else {
337 return -ENOTSUP;
338 }
339 }
340 }
341
343}
#define ENOTSUP
Operation not supported.
Definition errno.h:590
static struct netdev_setting_operation netdev_setting_operations[]
Network device settings.
static uint16_t struct vmbus_xfer_pages_operations * op
Definition netvsc.h:327
int setting_cmp(const struct setting *a, const struct setting *b)
Compare two settings.
Definition settings.c:1121
int generic_settings_store(struct settings *settings, const struct setting *setting, const void *data, size_t len)
Store value of generic setting.
Definition settings.c:127
#define container_of(ptr, type, field)
Get containing structure.
Definition stddef.h:36
A network device.
Definition netdevice.h:353
A network device setting operation.
A setting.
Definition settings.h:24
A settings block.
Definition settings.h:133

References container_of, data, ENOTSUP, generic_settings_store(), len, netdev, netdev_setting_operations, op, and setting_cmp().

◆ netdev_fetch()

int netdev_fetch ( struct settings * settings,
struct setting * setting,
void * data,
size_t len )
static

Fetch value of network device setting.

Parameters
settingsSettings block
settingSetting to fetch
dataBuffer to fill with setting data
lenLength of buffer
Return values
lenLength of setting data, or negative error

Definition at line 354 of file netdev_settings.c.

355 {
357 settings.settings );
359 unsigned int i;
360
361 /* Handle network device-specific settings */
362 for ( i = 0 ; i < ( sizeof ( netdev_setting_operations ) /
363 sizeof ( netdev_setting_operations[0] ) ) ; i++ ) {
365 if ( setting_cmp ( setting, op->setting ) == 0 )
366 return op->fetch ( netdev, data, len );
367 }
368
370}
int generic_settings_fetch(struct settings *settings, struct setting *setting, void *data, size_t len)
Fetch value of generic setting.
Definition settings.c:179

References container_of, data, generic_settings_fetch(), len, netdev, netdev_setting_operations, op, and setting_cmp().

◆ netdev_clear()

void netdev_clear ( struct settings * settings)
static

Clear network device settings.

Parameters
settingsSettings block

Definition at line 377 of file netdev_settings.c.

377 {
379}
void generic_settings_clear(struct settings *settings)
Clear generic settings block.
Definition settings.c:208

References generic_settings_clear().

◆ netdev_redirect()

struct settings * netdev_redirect ( struct settings * settings)
static

Redirect "netX" settings block.

Parameters
settingsSettings block
Return values
settingsUnderlying settings block

Definition at line 394 of file netdev_settings.c.

394 {
395 struct net_device *netdev;
396
397 /* Redirect to "netX" network device */
399 if ( netdev ) {
400 return netdev_settings ( netdev );
401 } else {
402 return settings;
403 }
404}
struct net_device * find_netdev(const char *name)
Get network device by name.
Definition netdevice.c:989
static struct settings * netdev_settings(struct net_device *netdev)
Get per-netdevice configuration settings block.
Definition netdevice.h:587
const char * name
Name.
Definition settings.h:137

References find_netdev(), settings::name, netdev, and netdev_settings().

◆ netdev_redirect_settings_init()

void netdev_redirect_settings_init ( void )
static

Initialise "netX" settings.

Definition at line 420 of file netdev_settings.c.

420 {
421 int rc;
422
424 "netX" ) ) != 0 ) {
425 DBG ( "Could not register netX settings: %s\n",
426 strerror ( rc ) );
427 return;
428 }
429}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
struct arbelprm_rc_send_wqe rc
Definition arbel.h:3
#define DBG(...)
Print a debugging message.
Definition compiler.h:498
static struct settings netdev_redirect_settings
"netX" settings
int register_settings(struct settings *settings, struct settings *parent, const char *name)
Register settings block.
Definition settings.c:476
char * strerror(int errno)
Retrieve string representation of error number.
Definition strerror.c:79

References DBG, netdev_redirect_settings, NULL, rc, register_settings(), and strerror().

Referenced by __init_fn().

◆ __init_fn()

struct init_fn netdev_redirect_settings_init_fn __init_fn ( INIT_LATE )

"netX" settings initialiser

References __init_fn, INIT_LATE, and netdev_redirect_settings_init().

◆ apply_netdev_settings()

int apply_netdev_settings ( void )
static

Apply network device settings.

Return values
rcReturn status code

Definition at line 442 of file netdev_settings.c.

442 {
443 struct net_device *netdev;
444 struct settings *settings;
445 struct ll_protocol *ll_protocol;
446 size_t max_mtu;
447 size_t old_mtu;
448 size_t mtu;
449 int rc;
450
451 /* Process settings for each network device */
453
454 /* Get network device settings */
456
457 /* Get MTU */
458 mtu = fetch_uintz_setting ( settings, &mtu_setting );
459
460 /* Do nothing unless MTU is specified */
461 if ( ! mtu )
462 continue;
463
464 /* Limit MTU to maximum supported by hardware */
465 ll_protocol = netdev->ll_protocol;
466 max_mtu = ( netdev->max_pkt_len - ll_protocol->ll_header_len );
467 if ( mtu > max_mtu ) {
468 DBGC ( netdev, "NETDEV %s cannot support MTU %zd (max "
469 "%zd)\n", netdev->name, mtu, max_mtu );
470 mtu = max_mtu;
471 }
472
473 /* Update maximum packet length */
474 old_mtu = netdev->mtu;
475 netdev->mtu = mtu;
476 if ( mtu != old_mtu ) {
477 DBGC ( netdev, "NETDEV %s MTU is %zd\n",
478 netdev->name, mtu );
479 }
480
481 /* Close and reopen network device if MTU has increased */
482 if ( netdev_is_open ( netdev ) && ( mtu > old_mtu ) ) {
484 if ( ( rc = netdev_open ( netdev ) ) != 0 ) {
485 DBGC ( netdev, "NETDEV %s could not reopen: "
486 "%s\n", netdev->name, strerror ( rc ) );
487 return rc;
488 }
489 }
490 }
491
492 return 0;
493}
uint32_t mtu
Maximum MTU.
Definition ena.h:17
#define DBGC(...)
Definition compiler.h:505
int netdev_open(struct net_device *netdev)
Open network device.
Definition netdevice.c:862
void netdev_close(struct net_device *netdev)
Close network device.
Definition netdevice.c:896
#define for_each_netdev(netdev)
Iterate over all network devices.
Definition netdevice.h:547
static int netdev_is_open(struct net_device *netdev)
Check whether or not network device is open.
Definition netdevice.h:662
unsigned long fetch_uintz_setting(struct settings *settings, const struct setting *setting)
Fetch value of unsigned integer setting, or zero.
Definition settings.c:1069
uint8_t ll_header_len
Link-layer header length.
Definition netdevice.h:201

References DBGC, fetch_uintz_setting(), for_each_netdev, ll_protocol::ll_header_len, mtu, netdev, netdev_close(), netdev_is_open(), netdev_open(), netdev_settings(), rc, and strerror().

Variable Documentation

◆ netdev_setting_operations

struct netdev_setting_operation netdev_setting_operations[]
static
Initial value:
= {
{ &mac_setting, netdev_store_mac, netdev_fetch_mac },
{ &hwaddr_setting, NULL, netdev_fetch_hwaddr },
{ &bustype_setting, NULL, netdev_fetch_bustype },
{ &busloc_setting, NULL, netdev_fetch_busloc },
{ &busid_setting, NULL, netdev_fetch_busid },
{ &linktype_setting, NULL, netdev_fetch_linktype },
{ &chip_setting, NULL, netdev_fetch_chip },
{ &ifname_setting, NULL, netdev_fetch_ifname },
}
static int netdev_fetch_busid(struct net_device *netdev, void *data, size_t len)
Fetch bus ID setting.
static int netdev_fetch_mac(struct net_device *netdev, void *data, size_t len)
Fetch link-layer address setting.
static int netdev_fetch_bustype(struct net_device *netdev, void *data, size_t len)
Fetch bus type setting.
static int netdev_fetch_hwaddr(struct net_device *netdev, void *data, size_t len)
Fetch hardware address setting.
static int netdev_store_mac(struct net_device *netdev, const void *data, size_t len)
Store link-layer address setting.
static int netdev_fetch_chip(struct net_device *netdev, void *data, size_t len)
Fetch chip setting.
static int netdev_fetch_busloc(struct net_device *netdev, void *data, size_t len)
Fetch bus location setting.
static int netdev_fetch_linktype(struct net_device *netdev, void *data, size_t len)
Fetch link layer type setting.
static int netdev_fetch_ifname(struct net_device *netdev, void *data, size_t len)
Fetch ifname setting.

Network device settings.

Definition at line 301 of file netdev_settings.c.

301 {
302 { &mac_setting, netdev_store_mac, netdev_fetch_mac },
303 { &hwaddr_setting, NULL, netdev_fetch_hwaddr },
304 { &bustype_setting, NULL, netdev_fetch_bustype },
305 { &busloc_setting, NULL, netdev_fetch_busloc },
306 { &busid_setting, NULL, netdev_fetch_busid },
307 { &linktype_setting, NULL, netdev_fetch_linktype },
308 { &chip_setting, NULL, netdev_fetch_chip },
309 { &ifname_setting, NULL, netdev_fetch_ifname },
310};

Referenced by netdev_fetch(), and netdev_store().

◆ netdev_settings_operations

struct settings_operations netdev_settings_operations
Initial value:
= {
.store = netdev_store,
.fetch = netdev_fetch,
.clear = netdev_clear,
}
static int netdev_store(struct settings *settings, const struct setting *setting, const void *data, size_t len)
Store value of network device setting.
static int netdev_fetch(struct settings *settings, struct setting *setting, void *data, size_t len)
Fetch value of network device setting.
static void netdev_clear(struct settings *settings)
Clear network device settings.

Network device configuration settings operations.

Definition at line 382 of file netdev_settings.c.

382 {
383 .store = netdev_store,
384 .fetch = netdev_fetch,
385 .clear = netdev_clear,
386};

Referenced by netdev_settings_init().

◆ netdev_redirect_settings_operations

struct settings_operations netdev_redirect_settings_operations
static
Initial value:
= {
.redirect = netdev_redirect,
}
static struct settings * netdev_redirect(struct settings *settings)
Redirect "netX" settings block.

"netX" settings operations

Definition at line 407 of file netdev_settings.c.

407 {
408 .redirect = netdev_redirect,
409};

◆ netdev_redirect_settings

struct settings netdev_redirect_settings
static
Initial value:
= {
.refcnt = NULL,
.siblings = LIST_HEAD_INIT ( netdev_redirect_settings.siblings ),
.children = LIST_HEAD_INIT ( netdev_redirect_settings.children ),
}
#define LIST_HEAD_INIT(list)
Initialise a static list head.
Definition list.h:31
static struct settings_operations netdev_redirect_settings_operations
"netX" settings operations

"netX" settings

Definition at line 412 of file netdev_settings.c.

412 {
413 .refcnt = NULL,
414 .siblings = LIST_HEAD_INIT ( netdev_redirect_settings.siblings ),
415 .children = LIST_HEAD_INIT ( netdev_redirect_settings.children ),
417};

Referenced by netdev_redirect_settings_init().

◆ __settings_applicator

struct settings_applicator netdev_applicator __settings_applicator
Initial value:
= {
}
static int apply_netdev_settings(void)
Apply network device settings.

Network device settings applicator.

Definition at line 496 of file netdev_settings.c.

496 {
497 .apply = apply_netdev_settings,
498};