-
Notifications
You must be signed in to change notification settings - Fork 172
The mini design of confignetwork support NetworkManager
In RH8, NetworkManager is default enabled and used, confignetwork use nmcli to configure network interfaces.
In RH7.x and below OS distribution, NetworkManager is disabled in xCAT managed node, confignetwork use network service to manage network interfaces. If the node is not xCAT managed node and NetworkManager is used, confignetwork use nmcli to configure network interfaces.
Related commands refer to https://github.com/xcat2/xcat2-task-management/issues/598
- Make hash for nicdevice, nictypes, nicips, nicnetwork, niccustomscripts
- Sort nics device pair based on nicdevice type
- If there is invalid nics pair, errorcode is 1
- Delete invalid nics device pair based on Error
-
- Check NetworkManager service status, use "networkmanager_active" as global variable,
-
- if NetworkManager is active, networkmanager_active=1
-
-
- Check if nmcli is installed:
-
- if yes, continue, stop network.service and networking service
- if no, print error and exit 1
-
- if NetworkManager is not active:
-
- if network.service or networking is active, networkmanager_active=0
- if both network.service and networking is not active, exit 1
- Back up the network interface configuration files to /tmp directory, if it is existed in /tmp, do nothing.
-
- Configure nics framework, the inputs are orderd nic and its device
-
- For each nic and its device pair:
-
- If install nic is configured, skip to reconfigure it
- If there is customscript, then processing custom scripts for nics
- For current nic, get its base nic and base nic type
- If current nic type is BMC, ignore bmc interfaces
- If current nic type is ethernet, configure standalone ethernet nic
-
- If current nic type is bridge:
-
-
- If brctl works well:
-
- If networkmanager_active=1: create_bridge_interface_nmcli ifname=$nic_dev _brtype=$nic_dev_type _port=$base_nic_dev _pretype=$base_nic_type
- If networkmanager_active=0: create_bridge_interface ifname=$nic_dev _brtype=$nic_dev_type _port=$base_nic_dev _pretype=$base_nic_type
-
-
- If current nic type is VLAN:
-
- Get vlanname and vlanid
- If networkmanager_active=1: create_vlan_interface_nmcli ifname=$vlanname vlanid=$vlanid
- If networkmanager_active=0: create_vlan_interface ifname=$vlanname vlanid=$vlanid
-
- If current nic type is BOND:
-
- If networkmanager_active=1: create_bond_interface ifname=$nic_dev slave_ports=$base_nic_for_bond slave_type=$base_nic_type
- If networkmanager_active=0: create_bond_interface ifname=$nic_dev slave_ports=$base_nic_for_bond slave_type=$base_nic_type
- If current nic type is infiniband Or Omnipath, use "configib" to configure IB nics
-
create_bond_interface is original interface
-
- create_bond_interface_nmcli is for NetworkManager
-
-
Parser input arguments
-
If no slave_ports, return 1
-
Set bonding_opts based on slave_type, slave_type can be ethernet or infiniband
-
Query "nicnetworks" entry about its target "xcatnet"
-
Query mtu value from "networks"
-
Calculate prefix based on mask and network
-
- Check if bond slaves device is managed or unmanaged
-
- if it is unmanaged, set it managed, if set it managed failed, print error and return 1;
-
- Create target bond interface
-
-
- if target bond device has connection:
-
- disconnect master and slaves connection
-
- stage 0: create raw bond connection
-
- load the bonding module if not loaded
- create master and slaves bond device connection, connection name should be with xCAT label
-
- stage 1: setup bond options for the new connection
-
- modify master bond connection options (ip, prefix, bonding_opts etc)
- if there is customized parameter, customize master bond interface connection
-
- stage 2: bring interface up
-
- For each slaves:
-
- bring up slave connection.
- bring new master bond connection up
-
stage 3: check all connection state, if it is failed, wait for connection state and check target interface up again, can use "wait_for_ifstate" function
-
-
- create_vlan_interface is original interface
-
- create_vlan_interface_nmcli is for NetworkManager
-
- Parser input arguments
- Check if there is no vlanid, return 1
- Query "networks" entry
- Query mtu value from "networks" hash
- Calculate prefix based on mask and network
- Load the 8021q module if not loaded
-
- Check if base nic device is managed or not
-
- If unmanaged, set it managed
- If failed to set it managed, return 1
-
- Check if vlan connection exists or not
-
- If vlan connection exists, modify this vlan connection
- If vlan connection does not exist, create new vlan connection using nmcli
-
- If there is customized parameter for this vlan
-
- customize vlan interface connection using nmcli
- Set vlan connection up
- Check vlan interface state, if failed, Wait for connection state, can use "wait_for_ifstate" function
- create_bridge_interface is original interface
-
- create_bridge_interface_nmcli is for NetworkManager
-
- Parser input arguments
- Query "nicnetworks" entry about its target "xcatnet"
- Query mtu value from "networks"
- Calculate prefix based on mask and network
-
- If base type is ethernet
-
- check if this device is managed or not, if it is unmanaged, set it managed, if set it managed failed, print error and return 1;
- create enthernet type slave connection using nmcli
-
- If base type is vlan
-
- check if this device is managed or not, if it is unmanaged, set it managed, if set it managed failed, print error and return 1;
- create vlan type slave connection using nmcli
-
- If base type is bond
-
- check if this device is managed or not, if it is unmanaged, set it managed, if set it managed failed, print error and return 1;
- create bond type slave connection using nmcli
-
- Check If master bridge connection existed or not
-
- If not, create master bridge connection using nmcli
- If yes, disconnect old connection, create master bridge connection using nmcli
-
- if there is customized parameter
-
- customize master bridge interface connection using nmcli
- Bring up slave connection
- Check and wait for slave connection state, can use "wait_for_ifstate" function
- Bring up master connection
- Check and wait for master connection state, can use "wait_for_ifstate" function
- Mar 08, 2023: xCAT 2.16.5 released.
- Jun 20, 2022: xCAT 2.16.4 released.
- Nov 17, 2021: xCAT 2.16.3 released.
- May 25, 2021: xCAT 2.16.2 released.
- Nov 06, 2020: xCAT 2.16.1 released.
- Jun 17, 2020: xCAT 2.16 released.
- Mar 06, 2020: xCAT 2.15.1 released.
- Nov 11, 2019: xCAT 2.15 released.
- Mar 29, 2019: xCAT 2.14.6 released.
- Dec 07, 2018: xCAT 2.14.5 released.
- Oct 19, 2018: xCAT 2.14.4 released.
- Aug 24, 2018: xCAT 2.14.3 released.
- Jul 13, 2018: xCAT 2.14.2 released.
- Jun 01, 2018: xCAT 2.14.1 released.
- Apr 20, 2018: xCAT 2.14 released.
- Mar 14, 2018: xCAT 2.13.11 released.
- Jan 26, 2018: xCAT 2.13.10 released.
- Dec 18, 2017: xCAT 2.13.9 released.
- Nov 03, 2017: xCAT 2.13.8 released.
- Sep 22, 2017: xCAT 2.13.7 released.
- Aug 10, 2017: xCAT 2.13.6 released.
- Jun 30, 2017: xCAT 2.13.5 released.
- May 19, 2017: xCAT 2.13.4 released.
- Apr 14, 2017: xCAT 2.13.3 released.
- Feb 24, 2017: xCAT 2.13.2 released.
- Jan 13, 2017: xCAT 2.13.1 released.
- Dec 09, 2016: xCAT 2.13 released.
- Dec 06, 2016: xCAT 2.9.4 (AIX only) released.
- Nov 11, 2016: xCAT 2.12.4 released.
- Sep 30, 2016: xCAT 2.12.3 released.
- Aug 19, 2016: xCAT 2.12.2 released.
- Jul 08, 2016: xCAT 2.12.1 released.
- May 20, 2016: xCAT 2.12 released.
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT OS And Hw Support Matrix
- Oct 22, 2010: xCAT 2.5 released.
- Apr 30, 2010: xCAT 2.4 is released.
- Oct 31, 2009: xCAT 2.3 released. xCAT's 10 year anniversary!
- Apr 16, 2009: xCAT 2.2 released.
- Oct 31, 2008: xCAT 2.1 released.
- Sep 12, 2008: Support for xCAT 2 can now be purchased!
- June 9, 2008: xCAT breaths life into (at the time) the fastest supercomputer on the planet
- May 30, 2008: xCAT 2.0 for Linux officially released!
- Oct 31, 2007: IBM open sources xCAT 2.0 to allow collaboration among all of the xCAT users.
- Oct 31, 1999: xCAT 1.0 is born!
xCAT started out as a project in IBM developed by Egan Ford. It was quickly adopted by customers and IBM manufacturing sites to rapidly deploy clusters.