795 lines
9.9 KiB
Markdown
795 lines
9.9 KiB
Markdown
|
## _module\.args
|
|||
|
|
|||
|
Additional arguments passed to each module in addition to ones
|
|||
|
like ` lib `, ` config `,
|
|||
|
and ` pkgs `, ` modulesPath `\.
|
|||
|
|
|||
|
This option is also available to all submodules\. Submodules do not
|
|||
|
inherit args from their parent module, nor do they provide args to
|
|||
|
their parent module or sibling submodules\. The sole exception to
|
|||
|
this is the argument ` name ` which is provided by
|
|||
|
parent modules to a submodule and contains the attribute name
|
|||
|
the submodule is bound to, or a unique generated name if it is
|
|||
|
not bound to an attribute\.
|
|||
|
|
|||
|
Some arguments are already passed by default, of which the
|
|||
|
following *cannot* be changed with this option:
|
|||
|
|
|||
|
- ` lib `: The nixpkgs library\.
|
|||
|
|
|||
|
- ` config `: The results of all options after merging the values from all modules together\.
|
|||
|
|
|||
|
- ` options `: The options declared in all modules\.
|
|||
|
|
|||
|
- ` specialArgs `: The ` specialArgs ` argument passed to ` evalModules `\.
|
|||
|
|
|||
|
- All attributes of ` specialArgs `
|
|||
|
|
|||
|
Whereas option values can generally depend on other option values
|
|||
|
thanks to laziness, this does not apply to ` imports `, which
|
|||
|
must be computed statically before anything else\.
|
|||
|
|
|||
|
For this reason, callers of the module system can provide ` specialArgs `
|
|||
|
which are available during import resolution\.
|
|||
|
|
|||
|
For NixOS, ` specialArgs ` includes
|
|||
|
` modulesPath `, which allows you to import
|
|||
|
extra modules from the nixpkgs package tree without having to
|
|||
|
somehow make the module aware of the location of the
|
|||
|
` nixpkgs ` or NixOS directories\.
|
|||
|
|
|||
|
```
|
|||
|
{ modulesPath, ... }: {
|
|||
|
imports = [
|
|||
|
(modulesPath + "/profiles/minimal.nix")
|
|||
|
];
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
For NixOS, the default value for this option includes at least this argument:
|
|||
|
|
|||
|
- ` pkgs `: The nixpkgs package set according to
|
|||
|
the ` nixpkgs.pkgs ` option\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
lazy attribute set of raw value
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [\<nixpkgs/lib/modules\.nix>](https://github.com/NixOS/nixpkgs/blob//lib/modules.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Unified configuration of interfaces adapted to DGNum usage:
|
|||
|
|
|||
|
- each interfaces have only one logical subinterface;
|
|||
|
- enabling ethernet-switching also enable RSTP;
|
|||
|
- automatic enabling interface and relevant config family when configuring;
|
|||
|
- allows enabling PoE along other configurations\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
attribute set of (submodule)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` { } `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` "config.inet.enable || config.inet6.enable || config.ethernet-switching.enable" `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.ethernet-switching\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the ethernet switching on this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` "config.ethernet-switching.interface-mode != null" `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.ethernet-switching\.interface-mode
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Mode of operation for vlan addressing of this interface\.
|
|||
|
“trunk” means that the traffic is tagged, “access” means the
|
|||
|
traffic is tagged by the switch\.
|
|||
|
Use null to desactivate the switching\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
null or one of “trunk”, “access”
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` null `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.ethernet-switching\.vlans
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Vlans that can be used on this interface\.
|
|||
|
Only one ID should be here for “access” mode of operation\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of (string or (unsigned integer, meaning >=0))
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.inet\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the ipv4 on this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` "config.inet.addresses != [ ]" `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.inet\.addresses
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ipv4 addresses of this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of string
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.inet6\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the ipv6 on this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` "config.inet6.addresses != [ ]" `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.inet6\.addresses
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ipv6 addresses of this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of string
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## dgn-interfaces\.\<name>\.poe
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the PoE on this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` false `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [dgn-module\.nix](./dgn-module.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The interfaces configuration\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
attribute set of (submodule)
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable this physical interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` false `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Configuration of the logical interfaces on this physical interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
attribute set of (submodule)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` { } `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable this logical interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` true `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` false `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.ethernet-switching\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the ethernet switching on this logical interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` false `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.ethernet-switching\.interface-mode
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Mode of operation for vlan addressing of this interface\.
|
|||
|
“trunk” means that the traffic is tagged, “access” means the
|
|||
|
traffic is tagged by the switch\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
one of “trunk”, “access”
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.ethernet-switching\.vlans
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Vlans that can be used on this interface\.
|
|||
|
Only one ID should be here for “access” mode of operation\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of (string or (unsigned integer, meaning >=0))
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.inet\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the IPv4 configuration of this logical interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` false `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.inet\.addresses
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ipv4 addresses of this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of string
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.inet6\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the IPv6 configuration of this logical interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` false `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## interfaces\.\<name>\.unit\.\<name>\.family\.inet6\.addresses
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ipv6 addresses of this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of string
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/interfaces\.nix](./junos/interfaces.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## netconf\.mandatoryInterfaces
|
|||
|
|
|||
|
|
|||
|
|
|||
|
JunOS require some interfaces to always be configured (even if they are disabled),
|
|||
|
which correspond to physical interfaces of the switch\. They have to be declared here
|
|||
|
with some information about it (only if it supports PoE for now)\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
attribute set of (submodule)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
|
|||
|
```
|
|||
|
{
|
|||
|
"ge-0/0/0" = {
|
|||
|
supportPoE = true;
|
|||
|
};
|
|||
|
"ge-0/0/1" = {
|
|||
|
supportPoE = true;
|
|||
|
};
|
|||
|
"xe-0/0/0" = {
|
|||
|
supportPoE = false;
|
|||
|
};
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos](./junos)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## netconf\.mandatoryInterfaces\.\<name>\.supportPoE
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Wether this interface supports PoE\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos](./junos)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## netconf\.xmls\.configuration
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The full configuration to send to a JunOS\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
string *(read only)*
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos](./junos)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## poe\.interfaces
|
|||
|
|
|||
|
|
|||
|
|
|||
|
PoE configuration of interfaces\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
attribute set of (submodule)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` { } `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/poe\.nix](./junos/poe.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## poe\.interfaces\.\<name>\.enable
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Whether to enable the PoE for this interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
boolean
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` false `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` true `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/poe\.nix](./junos/poe.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## protocols\.rstp
|
|||
|
|
|||
|
|
|||
|
|
|||
|
List of interfaces on which Rapid Spanning Tree Protocol should be enabled\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of string
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/protocols\.nix](./junos/protocols.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## vlans
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Named vlans configuration\. Allows to name vlans inside interface configuration,
|
|||
|
instead of just using their IDs\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
attribute set of (submodule)
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/vlans\.nix](./junos/vlans.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## vlans\.\<name>\.id
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The ID of this vlan, ` null ` means no ID\.
|
|||
|
Incompatible with vlans\.‹name›\.id-list\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
null or (unsigned integer, meaning >=0)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` null `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/vlans\.nix](./junos/vlans.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## vlans\.\<name>\.id-list
|
|||
|
|
|||
|
|
|||
|
|
|||
|
List of IDs or IDs range to classify as this vlan\.
|
|||
|
Incompatible with vlans\.‹name›\.id\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
list of (unsigned integer, meaning >=0, or (submodule))
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` [ ] `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
|
|||
|
```
|
|||
|
[
|
|||
|
42
|
|||
|
{
|
|||
|
begin = 100;
|
|||
|
end = 200;
|
|||
|
}
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/vlans\.nix](./junos/vlans.nix)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## vlans\.\<name>\.l3-interface
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Switch’s logical interface to connect directly to this vlan\.
|
|||
|
This allows to communicate with the switch from a vlan without
|
|||
|
having a cable looping back on it’s management interface\.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Type:*
|
|||
|
null or string
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Default:*
|
|||
|
` null `
|
|||
|
|
|||
|
|
|||
|
|
|||
|
*Example:*
|
|||
|
` "irb.0" `
|
|||
|
|
|||
|
*Declared by:*
|
|||
|
- [junos/vlans\.nix](./junos/vlans.nix)
|
|||
|
|
|||
|
|