struct ifinfomsg ifmsg = { 0 };
clib_error_t *err = 0;
- ifmsg.ifi_flags = IFF_UP;
+ ifmsg.ifi_flags = ((up) ? IFF_UP : 0);
ifmsg.ifi_change = IFF_UP;
ifmsg.ifi_index = ifindex;
ifa.ifa_index = ifindex;
vnet_netlink_msg_init (&m, RTM_NEWADDR,
- NLM_F_REQUEST | NLM_F_REPLACE,
+ NLM_F_REQUEST | NLM_F_CREATE | NLM_F_REPLACE,
&ifa, sizeof (struct ifaddrmsg));
vnet_netlink_msg_add_rtattr (&m, IFA_LOCAL, addr, 4);
ifa.ifa_index = ifindex;
vnet_netlink_msg_init (&m, RTM_NEWADDR,
- NLM_F_REQUEST | NLM_F_REPLACE,
+ NLM_F_REQUEST | NLM_F_CREATE | NLM_F_REPLACE,
&ifa, sizeof (struct ifaddrmsg));
vnet_netlink_msg_add_rtattr (&m, IFA_LOCAL, addr, 16);
rtm.rtm_dst_len = dst_len;
vnet_netlink_msg_init (&m, RTM_NEWROUTE,
- NLM_F_REQUEST | NLM_F_REPLACE,
+ NLM_F_REQUEST | NLM_F_CREATE | NLM_F_REPLACE,
&rtm, sizeof (struct rtmsg));
vnet_netlink_msg_add_rtattr (&m, RTA_GATEWAY, gw, 4);
rtm.rtm_dst_len = dst_len;
vnet_netlink_msg_init (&m, RTM_NEWROUTE,
- NLM_F_REQUEST | NLM_F_REPLACE,
+ NLM_F_REQUEST | NLM_F_CREATE | NLM_F_REPLACE,
&rtm, sizeof (struct rtmsg));
vnet_netlink_msg_add_rtattr (&m, RTA_GATEWAY, gw, 16);