if (argv_find(argv, argc, "vrf", &idx_vrf)) {
vrf_name = argv[idx_vrf + 1]->arg;
+ if (vrf_name == NULL || strmatch(vrf_name, VRF_DEFAULT_NAME))
+ vrf_name = NULL;
if (enable) {
/* Allocate VRF aware instance */
ospf = ospf_get(*instance, vrf_name);
new->instance = instance;
new->router_id.s_addr = htonl(0);
new->router_id_static.s_addr = htonl(0);
-
- if (name) {
+ if (name && !strmatch(name, VRF_DEFAULT_NAME)) {
new->vrf_id = VRF_UNKNOWN;
/* Freed in ospf_finish_final */
new->name = XSTRDUP(MTYPE_OSPF_TOP, name);
- vrf = vrf_lookup_by_name(new->name);
if (IS_DEBUG_OSPF_EVENT)
zlog_debug(
"%s: Create new ospf instance with vrf_name %s vrf_id %u",
struct ospf *ospf = NULL;
struct listnode *node, *nnode;
+ if (name == NULL || strmatch(name, VRF_DEFAULT_NAME))
+ return ospf_lookup_by_vrf_id(VRF_DEFAULT);
+
for (ALL_LIST_ELEMENTS(om->ospf, node, nnode, ospf)) {
if ((ospf->instance == instance)
&& ((ospf->name == NULL && name == NULL)
ospf = ospf_lookup_by_name(vrf->name);
if (ospf) {
+ if (ospf->name && strmatch(vrf->name, VRF_DEFAULT_NAME)) {
+ XFREE(MTYPE_OSPF_TOP, ospf->name);
+ ospf->name = NULL;
+ }
old_vrf_id = ospf->vrf_id;
/* We have instance configured, link to VRF and make it "up". */
ospf_vrf_link(ospf, vrf);