Wicked: how to setup a completely static configuration?

I’ve just upgraded opensuse 12.3 to 13.2.
I have a completely static configuration (2 x 1GB onboard ethernet cards and 1 x 10GB mellanox card).

Each device should have a static ip4 address. No ip6. No dhcp.

Now I have the problem that ip addresses (and routes) are setup only if the link is connected on startup. I figured out that they are configured automatically when enabling the nanny.
Anyhow I want to setup and assign the ip addresses and routes etc. to the network devices on startup - no matter if the devices are connected with a network cable or not.

I don’t mind throwing away the old /etc/sysconfig/network configs and switch completely to wicked. But I didn’t find an appropriate documentation about how wicked can be configured.

How can I achieve this?

If you have the network device set to “At boot time” it should assign IP to the device despite there being no cable connected if you have a static setup.

I have tried to select “At boot time” in YaST but ip addresses and routes are still assigned/added only if the link is up.

Some more information about my config.

For example I’ll show the config and status of eth1. It is not connected with a network cable but anyhow it should be assigned with an ip address.

Current status:


> wicked ifstatus eth1
      eth1            setup-in-progress
      link:     #4, state device-up, mtu 6000
      type:     ethernet, hwaddr 00:25:90:6a:e5:bb
      config:   compat:/etc/sysconfig/network/ifcfg-eth1

> ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:25:90:6A:E5:BB  
          UP BROADCAST MULTICAST  MTU:6000  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Memory:dfc00000-dfc1ffff 

Config:


> cat /etc/sysconfig/network/ifcfg-eth1
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='192.168.1.2/24'
MTU='6000'
NAME='I350 Gigabit Network Connection'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'

> wicked show-config
-- snip - show eth1 parts only --
<interface origin="compat:/etc/sysconfig/network/ifcfg-eth1" uuid="02080000-5b7b-0200-aa00-0000e64cd254">
  <name>eth1</name>
  <control>
    <mode>boot</mode>
    <link-detection>
      <require-link/>
    </link-detection>
  </control>
  <link>
    <mtu>6000</mtu>
  </link>
  <ipv4>
    <enabled>true</enabled>
    <forwarding>false</forwarding>
    <arp-verify>false</arp-verify>
    <arp-notify>false</arp-notify>
  </ipv4>
  <ipv4:static>
    <address>
      <local>192.168.1.2/24</local>
    </address>
  </ipv4:static>
  <ipv6>
    <enabled>false</enabled>
  </ipv6>
</interface>
-- snip - end --

I think the problem is that wicked uses the config

    
    <link-detection>
      <require-link/>
    </link-detection>

I don’t know how to change that. Any ideas?

I think the wicked behaviour is buggy. I have filed a bug.

Stepped on this while googling for a solution. Just add

LINK_REQUIRED=no

to your ifcfg-* file and device comes up without network cable.