First, fix collation of .json snippets to ensure they are sorted by number, regardless of which directory they originate from. Second, and with an unexpected twist, use /etc as the target directory for factory-config.cfg and failure-config.cfg. At first just to avoid having the resulting .gen and .cfg files in /run/confd/, but it also unintentionally gives us a way to provide a static /etc/factory-confg in the image. As the TODO says, not perfect but better than before. Third, update load script to use the same base path as bootstrap by sourcing the system /etc/confdrc. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Documentation
Infix is a Linux Network Operating System (NOS) based on Buildroot, and sysrepo. A powerful mix that ease porting to different platforms, simplify long-term maintenance, and provide made-easy management using NETCONF1 (remote) or the built-in CLI.
Example CLI Session
The CLI configure context is automatically generated from the loaded YANG models and their corresponding sysrepo plugins. The following is brief example of how to set the IP address of an interface:
admin@infix-12-34-56:/> configure
admin@infix-12-34-56:/config/> edit interfaces interface eth0
admin@infix-12-34-56:/config/interfaces/interface/eth0/> set ipv4 <TAB>
address autoconf bind-ni-name enabled
forwarding mtu neighbor
admin@infix-12-34-56:/config/interfaces/interface/eth0/> set ipv4 address 192.168.2.200 prefix-length 24
admin@infix-12-34-56:/config/interfaces/interface/eth0/> show
type ethernetCsmacd;
ipv4 address 192.168.2.200 prefix-length 24;
ipv6 enabled true;
admin@infix-12-34-56:/config/interfaces/interface/eth0/> diff
interfaces {
interface eth0 {
+ ipv4 {
+ address 192.168.2.200 {
+ prefix-length 24;
+ }
+ }
}
}
admin@infix-12-34-56:/config/interfaces/interface/eth0/> leave
admin@infix-12-34-56:/> show interfaces brief
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0 UP 52:54:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
admin@infix-12-34-56:/> show ip brief
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.2.200/24 fe80::5054:ff:fe12:3456/64
admin@infix-12-34-56:/> copy running-config startup-config
Click here for more details.
Infix can run on many different types of architectures and boards, much thanks to Linux and Buildroot. Currently the focus is on 64-bit ARM devices, optionally with switching fabric supported by Linux switchdev. The following boards are fully supported:
- Marvell CN9130 CRB
- Marvell EspressoBIN
- Microchip SparX-5i PCB135 (eMMC)
An x86_64 build is also available, primarily intended for development and testing, but can also be used for evaluation and demo purposes. For more information, see: Infix in Virtual Environments.
See the GitHub Releases page for our pre-built images. The Latest Build has the bleeding edge images, if possible we recommend using a versioned release.
For customer specific builds of Infix, see your product repository.
-
NETCONF or RESTCONF, https://datatracker.ietf.org/doc/html/rfc8040, for more information, see Infix Variants. ↩︎