diff --git a/src/kickstarts/interface_setup.py b/src/kickstarts/interface_setup.py index d92abc5f..bc0c7289 100644 --- a/src/kickstarts/interface_setup.py +++ b/src/kickstarts/interface_setup.py @@ -55,6 +55,7 @@ def __init__(self, **kwargs): self.vlan = kwargs.get('vlan', None) self.dhcp = kwargs.get('dhcp', None) self.no_restart_network = kwargs.get('no_restart_network', False) + self.mtu = kwargs.get('mtu', None) self.bond_opts = {'miimon': '100', 'mode': '802.3ad', 'xmit_hash_policy': 'layer3+4'} try: @@ -174,6 +175,8 @@ def create_vlan_interface(self): } if self.gw: cfg['GATEWAY'] = self.gw + if self.mtu: + cfg['MTU'] = self.mtu self.write_network_script(vlanif, cfg) def create_bond_members(self): @@ -225,6 +228,8 @@ def create_bonding_interface(self): }) if self.gw: cfg['GATEWAY'] = self.gw + if self.mtu: + cfg['MTU'] = self.mtu else: self.create_vlan_interface() self.write_network_script(self.device, cfg) @@ -238,6 +243,8 @@ def create_interface(self): 'BOOTPROTO' : 'none', 'NM_CONTROLLED' : 'no', 'HWADDR' : mac} + if self.mtu: + cfg['MTU'] = self.mtu if not self.vlan: if self.dhcp: cfg.update({'BOOTPROTO': 'dhcp'}) @@ -370,9 +377,13 @@ def create_interface(self): cfg = ['auto %s' %self.device, 'iface %s inet manual' %self.device, 'down ip addr flush dev %s' %self.device] + if self.mtu: + cfg.append('mtu %s' %self.mtu) elif self.dhcp: cfg = ['auto %s' %self.device, 'iface %s inet dhcp' %self.device] + if self.mtu: + cfg.append('pre-up /sbin/ip link set %s mtu %s' % (self.device, self.mtu)) else: cfg = ['auto %s' %self.device, 'iface %s inet static' %self.device, @@ -380,6 +391,8 @@ def create_interface(self): 'netmask %s' %self.netmask] if self.gw: cfg.append('gateway %s' %self.gw) + if self.mtu: + cfg.append('mtu %s' %self.mtu) self.write_network_script(cfg) if self.vlan: self.create_vlan_interface() @@ -404,6 +417,8 @@ def create_vlan_interface(self): 'vlan-raw-device %s' %self.device] if self.gw: cfg.append('gateway %s' %self.gw) + if self.mtu: + cfg.append('mtu %s' %self.mtu) self.write_network_script(cfg) def create_bonding_interface(self): @@ -429,6 +444,8 @@ def create_bonding_interface(self): 'hwaddress %s' % bond_mac] if self.gw: cfg.append('gateway %s' %self.gw) + if self.mtu: + cfg.append('mtu %s' %self.mtu) cfg += self.bond_opts_str.split("\n") self.write_network_script(cfg) if self.vlan: @@ -471,6 +488,9 @@ def parse_cli(args): action='store_true', default=False, help='Disable network restart after configuring interfaces') + parser.add_argument('--mtu', + action='store', + help='MTU size of interface') pargs = parser.parse_args(args) if len(args) == 0: parser.print_help() diff --git a/src/server_mgr_main.py b/src/server_mgr_main.py index 44a9a0f3..5854df23 100755 --- a/src/server_mgr_main.py +++ b/src/server_mgr_main.py @@ -3092,6 +3092,9 @@ def build_server_cfg(self, server): ip = IPNetwork(ip_addr) d_gw = intf.get('default_gateway', None) dhcp = intf.get('dhcp', None) + mtu = intf.get('mtu', '') + if mtu: + mtu = '--mtu %s' %mtu if name.lower() == mgmt_intf.lower(): dhcp = True type = intf.get('type', None) @@ -3101,20 +3104,20 @@ def build_server_cfg(self, server): member_intfs = self.get_member_interfaces(network_dict, intf.get('member_interfaces', [])) device_str+= ("python /root/interface_setup.py \ ---device %s --members %s --bond-opts \"%s\" --ip %s\n") % \ +--device %s --members %s --bond-opts \"%s\" --ip %s %s\n") % \ (name, - " ".join(member_intfs), - json.dumps(bond_opts), ip_addr) + " ".join(member_intfs), + json.dumps(bond_opts), ip_addr, mtu) execute_script = True else: if 'mac_address' in intf: name = intf['mac_address'].lower() if dhcp: - device_str+= ("python /root/interface_setup.py --device %s --dhcp\n") % \ - (name) + device_str+= ("python /root/interface_setup.py --device %s --dhcp %s\n") % \ + (name, mtu) else: - device_str+= ("python /root/interface_setup.py --device %s --ip %s\n") % \ - (name, ip_addr) + device_str+= ("python /root/interface_setup.py --device %s --ip %s %s\n") % \ + (name, ip_addr, mtu) execute_script = True # Build route configuration and add it route_str = self.build_route_cfg(server)