]> git.puffer.fish Git - mirror/frr.git/commitdiff
Merge remote-tracking branch 'frr/master' into newline-redux
authorDavid Lamparter <equinox@opensourcerouting.org>
Fri, 14 Jul 2017 11:07:30 +0000 (13:07 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Fri, 14 Jul 2017 11:07:30 +0000 (13:07 +0200)
Lots of conflicts from CMD_WARNING_CONFIG_FAILED...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
66 files changed:
1  2 
babeld/babel_interface.c
babeld/babel_zebra.c
bgpd/bgp_bfd.c
bgpd/bgp_debug.c
bgpd/bgp_dump.c
bgpd/bgp_filter.c
bgpd/bgp_route.c
bgpd/bgp_routemap.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/rfapi/bgp_rfapi_cfg.c
bgpd/rfapi/rfapi.c
bgpd/rfapi/rfapi_vty.c
bgpd/rfapi/vnc_debug.c
eigrpd/eigrp_routemap.c
eigrpd/eigrp_vty.c
isisd/isis_redist.c
isisd/isis_te.c
isisd/isis_vty.c
ldpd/ldp_debug.c
ldpd/ldp_vty_conf.c
lib/agentx.c
lib/command.c
lib/distribute.c
lib/filter.c
lib/grammar_sandbox.c
lib/hash.c
lib/if.c
lib/if_rmap.c
lib/keychain.c
lib/ns.c
lib/plist.c
lib/routemap.c
lib/smux.c
lib/thread.c
lib/vrf.c
lib/vty.c
nhrpd/nhrp_vty.c
ospf6d/ospf6_area.c
ospf6d/ospf6_asbr.c
ospf6d/ospf6_interface.c
ospf6d/ospf6_zebra.c
ospfd/ospf_ri.c
ospfd/ospf_vty.c
ospfd/ospf_zebra.c
pimd/pim_cmd.c
ripd/rip_debug.c
ripd/rip_interface.c
ripd/rip_offset.c
ripd/rip_zebra.c
ripd/ripd.c
ripngd/ripng_debug.c
ripngd/ripng_interface.c
ripngd/ripng_offset.c
ripngd/ripng_zebra.c
ripngd/ripngd.c
vtysh/vtysh.c
zebra/debug.c
zebra/interface.c
zebra/irdp_interface.c
zebra/router-id.c
zebra/rtadv.c
zebra/zebra_mpls_vty.c
zebra/zebra_routemap.c
zebra/zebra_vty.c
zebra/zserv.c

index 831df9b68868690b5ecd86a2e0fbc7ae632bbd53,d14c4d8471492c4df3bf3ce878c4a9d93b6660fe..1ae33b3a27af7a6b49f077ca8f913e29de7ca5d5
@@@ -290,9 -290,9 +290,9 @@@ DEFUN (babel_network
          ret = babel_enable_if_add (argv[1]->arg);
  
      if (ret < 0) {
 -        vty_outln (vty, "There is same network configuration %s",
 +        vty_out (vty, "There is same network configuration %s\n",
                     argv[1]->arg);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
      }
  
      return CMD_SUCCESS;
@@@ -318,8 -318,8 +318,8 @@@ DEFUN (no_babel_network
          ret = babel_enable_if_delete (argv[2]->arg);
  
      if (ret < 0) {
 -        vty_outln (vty, "can't find network %s",argv[2]->arg);
 +        vty_out (vty, "can't find network %s\n",argv[2]->arg);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
      }
  
      return CMD_SUCCESS;
index a41908285bea6728ba1447b3645dc727c9d3a7a8,a3217076f3d642c57976b2ceeeaf85a27b5f7c38..52d7eaee83cd7c4ba30670a5b1b77738fceed246
@@@ -222,8 -222,8 +222,8 @@@ DEFUN (babel_redistribute_type
      type = babel_proto_redistnum(argv[1]->arg);
  
      if (type < 0) {
 -        vty_outln (vty, "Invalid type %s", argv[1]->arg);
 +        vty_out (vty, "Invalid type %s\n", argv[1]->arg);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
      }
  
      zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, AFI_IP, type, 0, VRF_DEFAULT);
@@@ -243,8 -244,8 +244,8 @@@ DEFUN (no_babel_redistribute_type
      type = babel_proto_redistnum(argv[2]->arg);
  
      if (type < 0) {
 -        vty_outln (vty, "Invalid type %s", argv[2]->arg);
 +        vty_out (vty, "Invalid type %s\n", argv[2]->arg);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
      }
  
      zclient_redistribute (ZEBRA_REDISTRIBUTE_DELETE, zclient, AFI_IP, type, 0, VRF_DEFAULT);
@@@ -277,9 -279,9 +279,9 @@@ DEFUN (debug_babel
          }
      }
  
 -    vty_outln (vty, "Invalid type %s", argv[2]->arg);
 +    vty_out (vty, "Invalid type %s\n", argv[2]->arg);
  
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
  }
  
  /* [Babel Command] */
@@@ -307,9 -309,9 +309,9 @@@ DEFUN (no_debug_babel
          }
      }
  
 -    vty_outln (vty, "Invalid type %s", argv[3]->arg);
 +    vty_out (vty, "Invalid type %s\n", argv[3]->arg);
  
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
  }
  #endif /* NO_DEBUG */
  
diff --cc bgpd/bgp_bfd.c
Simple merge
index b2c91c9136a030c3fee85a694aea417f1ce2fe6b,78a337bd8f202b7cb36354f6bb7e95d48cf37df3..e45b5ab4e3b13e928970bf45c6e08bcbd2514411
@@@ -962,8 -962,8 +962,8 @@@ DEFUN (no_debug_bgp_bestpath_prefix
    if (!ret)
      {
        prefix_free(argv_p);
 -      vty_outln (vty, "%% Malformed Prefix");
 +      vty_out (vty, "%% Malformed Prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp_debug_bestpath_prefixes && !list_isempty(bgp_debug_bestpath_prefixes))
@@@ -1337,8 -1337,8 +1337,8 @@@ DEFUN (debug_bgp_update_prefix
    if (!ret)
      {
        prefix_free(argv_p);
 -      vty_outln (vty, "%% Malformed Prefix");
 +      vty_out (vty, "%% Malformed Prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
  
@@@ -1390,8 -1390,8 +1390,8 @@@ DEFUN (no_debug_bgp_update_prefix
    if (!ret)
      {
        prefix_free(argv_p);
 -      vty_outln (vty, "%% Malformed Prefix");
 +      vty_out (vty, "%% Malformed Prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp_debug_update_prefixes && !list_isempty(bgp_debug_update_prefixes))
@@@ -1491,8 -1491,8 +1491,8 @@@ DEFUN (debug_bgp_zebra_prefix
    if (!ret)
      {
        prefix_free(argv_p);
 -      vty_outln (vty, "%% Malformed Prefix");
 +      vty_out (vty, "%% Malformed Prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!bgp_debug_zebra_prefixes)
@@@ -1561,8 -1561,8 +1561,8 @@@ DEFUN (no_debug_bgp_zebra_prefix
    if (!ret)
      {
        prefix_free(argv_p);
 -      vty_outln (vty, "%% Malformed Prefix");
 +      vty_out (vty, "%% Malformed Prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp_debug_zebra_prefixes && !list_isempty(bgp_debug_zebra_prefixes))
diff --cc bgpd/bgp_dump.c
index c35da4db763b3ff8895c19e1989c94e800c91d12,d63d8209cccc3040c54959643ce29f3d144143b0..5b6b8e13744768c832bbd9669eb6f595527159f8
@@@ -667,8 -667,8 +667,8 @@@ bgp_dump_set (struct vty *vty, struct b
        interval = bgp_dump_parse_time (interval_str);
        if (interval == 0)
        {
 -        vty_outln (vty, "Malformed interval string");
 +        vty_out (vty, "Malformed interval string\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        /* Setting interval string */
index 8968e22b0820d6e178b13369ec7c29d83067375a,5fa0372fe21d33a2bcb6a17fb06b89245a534126..a61321b0e317de422d50e8cbd0a844927a8a242b
@@@ -457,9 -457,9 +457,9 @@@ DEFUN (ip_as_path
    regex = bgp_regcomp (regstr);
    if (!regex)
      {
 -      vty_outln (vty, "can't compile regexp %s", regstr);
 +      vty_out (vty, "can't compile regexp %s\n", regstr);
        XFREE (MTYPE_TMP, regstr);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    asfilter = as_filter_make (regex, regstr, type);
@@@ -503,8 -503,8 +503,8 @@@ DEFUN (no_ip_as_path
    aslist = as_list_lookup (aslistname);
    if (aslist == NULL)
      {
 -      vty_outln (vty, "ip as-path access-list %s doesn't exist",aslistname);
 +      vty_out (vty, "ip as-path access-list %s doesn't exist\n",aslistname);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check the filter type. */
      type = AS_FILTER_DENY;
    else
      {
 -      vty_outln (vty, "filter type must be [permit|deny]");
 +      vty_out (vty, "filter type must be [permit|deny]\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    /* Compile AS path. */
    regex = bgp_regcomp (regstr);
    if (!regex)
      {
 -      vty_outln (vty, "can't compile regexp %s", regstr);
 +      vty_out (vty, "can't compile regexp %s\n", regstr);
        XFREE (MTYPE_TMP, regstr);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Lookup asfilter. */
  
    if (asfilter == NULL)
      {
 -      vty_outln (vty, "ip as-path access-list doesn't exist");
 +      vty_out (vty, "\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    as_list_filter_delete (aslist, asfilter);
@@@ -562,9 -562,9 +562,9 @@@ DEFUN (no_ip_as_path_all
    aslist = as_list_lookup (argv[idx_word]->arg);
    if (aslist == NULL)
      {
 -      vty_outln (vty, "ip as-path access-list %s doesn't exist",
 +      vty_out (vty, "ip as-path access-list %s doesn't exist\n",
                   argv[idx_word]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    as_list_delete (aslist);
index 9a64c62af8e9e41f731860bf1a0c04d7e6d46677,683cdbd67cc2881ee21f3a89b713e5e4caf71694..6fd959e30487316139bceb7a934d998fd7f72e45
@@@ -4273,13 -4273,13 +4273,13 @@@ bgp_static_set (struct vty *vty, const 
    ret = str2prefix (ip_str, &p);
    if (! ret)
      {
 -      vty_outln (vty, "%% Malformed prefix");
 +      vty_out (vty, "%% Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (afi == AFI_IP6 && IN6_IS_ADDR_LINKLOCAL (&p.u.prefix6))
      {
 -      vty_outln (vty,"%% Malformed prefix (link-local address)");
 +      vty_out (vty,"%% Malformed prefix (link-local address)\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    apply_mask (&p);
        /* Label index cannot be changed. */
        if (bgp_static->label_index != label_index)
          {
 -          vty_outln (vty, "%% Label index cannot be changed");
 +          vty_out (vty, "%% Label index cannot be changed\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        /* Check previous routes are installed into BGP.  */
@@@ -4367,13 -4367,13 +4367,13 @@@ bgp_static_unset (struct vty *vty, cons
    ret = str2prefix (ip_str, &p);
    if (! ret)
      {
 -      vty_outln (vty, "%% Malformed prefix");
 +      vty_out (vty, "%% Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (afi == AFI_IP6 && IN6_IS_ADDR_LINKLOCAL (&p.u.prefix6))
      {
 -      vty_outln (vty,"%% Malformed prefix (link-local address)");
 +      vty_out (vty,"%% Malformed prefix (link-local address)\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    apply_mask (&p);
    rn = bgp_node_lookup (bgp->route[afi][safi], &p);
    if (! rn)
      {
 -      vty_outln (vty,"%% Can't find specified static route configuration.");
 +      vty_out (vty,"%% Can't find specified static route configuration.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bgp_static = rn->info;
@@@ -4579,22 -4579,22 +4579,22 @@@ bgp_static_set_safi (afi_t afi, safi_t 
    ret = str2prefix (ip_str, &p);
    if (! ret)
      {
 -      vty_outln (vty, "%% Malformed prefix");
 +      vty_out (vty, "%% Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask (&p);
    if ( (afi == AFI_L2VPN) &&
         (bgp_build_evpn_prefix ( evpn_type, ethtag!=NULL?atol(ethtag):0, &p)))
      {
 -      vty_outln (vty, "%% L2VPN prefix could not be forged");
 +      vty_out (vty, "%% L2VPN prefix could not be forged\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = str2prefix_rd (rd_str, &prd);
    if (! ret)
      {
 -      vty_outln (vty, "%% Malformed rd");
 +      vty_out (vty, "%% Malformed rd\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (label_str)
      {
        if( esi && str2esi (esi, NULL) == 0)
          {
 -          vty_outln (vty, "%% Malformed ESI");
 +          vty_out (vty, "%% Malformed ESI\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if( routermac && prefix_str2mac (routermac, NULL) == 0)
          {
 -          vty_outln (vty, "%% Malformed Router MAC");
 +          vty_out (vty, "%% Malformed Router MAC\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (gwip)
          {
            ret = str2prefix (gwip, &gw_ip);
            if (! ret)
              {
 -              vty_outln (vty, "%% Malformed GatewayIp");
 +              vty_out (vty, "%% Malformed GatewayIp\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
            if((gw_ip.family == AF_INET &&
                IS_EVPN_PREFIX_IPADDR_V6((struct prefix_evpn *)&p)) ||
               (gw_ip.family == AF_INET6 &&
                IS_EVPN_PREFIX_IPADDR_V4((struct prefix_evpn *)&p)))
              {
 -              vty_outln (vty, "%% GatewayIp family differs with IP prefix");
 +              vty_out (vty, "%% GatewayIp family differs with IP prefix\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
          }
      }
@@@ -4713,21 -4713,21 +4713,21 @@@ bgp_static_unset_safi(afi_t afi, safi_
    ret = str2prefix (ip_str, &p);
    if (! ret)
      {
 -      vty_outln (vty, "%% Malformed prefix");
 +      vty_out (vty, "%% Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask (&p);
    if ( (afi == AFI_L2VPN) &&
         (bgp_build_evpn_prefix ( evpn_type, ethtag!=NULL?atol(ethtag):0, &p)))
      {
 -      vty_outln (vty, "%% L2VPN prefix could not be forged");
 +      vty_out (vty, "%% L2VPN prefix could not be forged\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    ret = str2prefix_rd (rd_str, &prd);
    if (! ret)
      {
 -      vty_outln (vty, "%% Malformed rd");
 +      vty_out (vty, "%% Malformed rd\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (label_str)
@@@ -4900,8 -4900,8 +4900,8 @@@ DEFUN (bgp_network_mask
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_set (vty, prefix_str,
@@@ -4927,8 -4927,8 +4927,8 @@@ DEFUN (bgp_network_mask_route_map
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_set (vty, prefix_str,
@@@ -4952,8 -4952,8 +4952,8 @@@ DEFUN (bgp_network_mask_backdoor
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_set (vty, prefix_str, AFI_IP, SAFI_UNICAST,
@@@ -4974,8 -4974,8 +4974,8 @@@ DEFUN (bgp_network_mask_natural
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_set (vty, prefix_str,
@@@ -4999,8 -4999,8 +4999,8 @@@ DEFUN (bgp_network_mask_natural_route_m
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_set (vty, prefix_str,
@@@ -5022,8 -5022,8 +5022,8 @@@ DEFUN (bgp_network_mask_natural_backdoo
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_set (vty, prefix_str, AFI_IP, SAFI_UNICAST,
@@@ -5097,8 -5097,8 +5097,8 @@@ DEFUN (no_bgp_network_mask
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_unset (vty, prefix_str, AFI_IP, 
@@@ -5122,8 -5122,8 +5122,8 @@@ DEFUN (no_bgp_network_mask_natural
    ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str);
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_static_unset (vty, prefix_str, AFI_IP, 
@@@ -5756,8 -5756,8 +5756,8 @@@ bgp_aggregate_unset (struct vty *vty, c
    ret = str2prefix (prefix_str, &p);
    if (!ret)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask (&p);
  
    rn = bgp_node_lookup (bgp->aggregate[afi][safi], &p);
    if (! rn)
      {
 -      vty_outln (vty,"%% There is no aggregate-address configuration.");
 +      vty_out (vty,"%% There is no aggregate-address configuration.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    aggregate = rn->info;
@@@ -5801,8 -5801,8 +5801,8 @@@ bgp_aggregate_set (struct vty *vty, con
    ret = str2prefix (prefix_str, &p);
    if (!ret)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask (&p);
  
        ret = bgp_aggregate_unset (vty, prefix_str, afi, safi);
        if (ret)
          {
 -          vty_outln (vty, "Error deleting aggregate.");
 +          vty_out (vty, "Error deleting aggregate.\n");
          bgp_unlock_node (rn);
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -5884,8 -5884,8 +5884,8 @@@ DEFUN (aggregate_address_mask
  
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_aggregate_set (vty, prefix_str, AFI_IP, bgp_node_safi (vty), summary_only, as_set);
@@@ -5930,8 -5930,8 +5930,8 @@@ DEFUN (no_aggregate_address_mask
  
    if (! ret)
      {
 -      vty_outln (vty, "%% Inconsistent address and mask");
 +      vty_out (vty, "%% Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_aggregate_unset (vty, prefix_str, AFI_IP, bgp_node_safi (vty));
@@@ -10094,8 -10099,8 +10094,8 @@@ bgp_distance_set (struct vty *vty, cons
    ret = str2prefix (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    distance = atoi (distance_str);
@@@ -10146,15 -10151,15 +10146,15 @@@ bgp_distance_unset (struct vty *vty, co
    ret = str2prefix (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rn = bgp_node_lookup (bgp_distance_table[afi][safi], (struct prefix *)&p);
    if (! rn)
      {
 -      vty_outln (vty, "Can't find specified prefix");
 +      vty_out (vty, "Can't find specified prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bdistance = rn->info;
  
    if (bdistance->distance != distance)
      {
 -      vty_outln (vty, "Distance does not match configured");
 +       vty_out (vty, "Distance does not match configured\n");
-        return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bdistance->access_list)
index 7f535388bb71135ac4a60f62e42f408191e4ca87,131b0817100c40bf49b704035230dc9c386ad8a6..de2a8764c8200e6969fdfbe70d984f53d5e44534
@@@ -2851,11 -2851,11 +2851,11 @@@ bgp_route_match_add (struct vty *vty
        switch (ret)
        {
        case RMAP_RULE_MISSING:
 -        vty_outln (vty, "%% BGP Can't find rule.");
 +        vty_out (vty, "%% BGP Can't find rule.\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        case RMAP_COMPILE_ERROR:
 -        vty_outln (vty, "%% BGP Argument is malformed.");
 +        vty_out (vty, "%% BGP Argument is malformed.\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
  
@@@ -3886,8 -3887,8 +3887,8 @@@ DEFUN (set_community
    /* Can't compile user input into communities attribute.  */
    if (! com)
      {
 -      vty_outln (vty, "%% Malformed communities attribute");
 +      vty_out (vty, "%% Malformed communities attribute\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Set communites attribute string.  */
@@@ -4210,8 -4212,8 +4212,8 @@@ DEFUN (set_aggregator_as
    ret = inet_aton (argv[idx_ipv4]->arg, &address);
    if (ret == 0)
      {
 -      vty_outln (vty, "Aggregator IP address is invalid");
 +      vty_out (vty, "Aggregator IP address is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    argstr = XMALLOC (MTYPE_ROUTE_MAP_COMPILED,
@@@ -4251,8 -4253,8 +4253,8 @@@ DEFUN (no_set_aggregator_as
    ret = inet_aton (argv[idx_ip]->arg, &address);
    if (ret == 0)
      {
 -      vty_outln (vty, "Aggregator IP address is invalid");
 +      vty_out (vty, "Aggregator IP address is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    argstr = XMALLOC (MTYPE_ROUTE_MAP_COMPILED,
@@@ -4362,16 -4364,16 +4364,16 @@@ DEFUN (set_ipv6_nexthop_global
    ret = inet_pton (AF_INET6, argv[idx_ipv6]->arg, &addr);
    if (!ret)
      {
 -      vty_outln (vty, "%% Malformed nexthop address");
 +      vty_out (vty, "%% Malformed nexthop address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (IN6_IS_ADDR_UNSPECIFIED(&addr) ||
        IN6_IS_ADDR_LOOPBACK(&addr)    ||
        IN6_IS_ADDR_MULTICAST(&addr)   ||
        IN6_IS_ADDR_LINKLOCAL(&addr))
      {
 -      vty_outln (vty, "%% Invalid global nexthop address");
 +      vty_out (vty, "%% Invalid global nexthop address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return generic_set_add (vty, VTY_GET_CONTEXT(route_map_index),
diff --cc bgpd/bgp_vty.c
index 851a2231591bd052496b7811b6098d971e4582b0,d9ad3a1f533af3677dc5757b82250ff00eae2f56..b5cbd35460f5643b9f5914f794ee09a4d0711f10
@@@ -519,8 -523,8 +519,8 @@@ bgp_vty_return (struct vty *vty, int re
      }
    if (str)
      {
 -      vty_out (vty, "%% %s%s", str, VTYNL);
 +      vty_out (vty, "%% %s\n", str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
@@@ -789,8 -794,8 +789,8 @@@ DEFUN (no_bgp_multiple_instance
    ret = bgp_option_unset (BGP_OPT_MULTIPLE_INSTANCE);
    if (ret < 0)
      {
 -      vty_out (vty, "%% There are more than two BGP instances%s", VTYNL);
 +      vty_out (vty, "%% There are more than two BGP instances\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
@@@ -870,14 -875,14 +870,14 @@@ DEFUN_NOSH (router_bgp
  
        if (bgp == NULL)
          {
 -          vty_out (vty, "%% No BGP process is configured%s", VTYNL);
 +          vty_out (vty, "%% No BGP process is configured\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        if (listcount(bm->bgp) > 1)
          {
 -          vty_out (vty, "%% Multiple BGP processes are configured%s", VTYNL);
 +          vty_out (vty, "%% Multiple BGP processes are configured\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
        switch (ret)
          {
          case BGP_ERR_MULTIPLE_INSTANCE_NOT_SET:
 -          vty_out (vty, "Please specify 'bgp multiple-instance' first%s",
 -                   VTYNL);
 +          vty_out (vty, "Please specify 'bgp multiple-instance' first\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case BGP_ERR_AS_MISMATCH:
 -          vty_out (vty, "BGP is already running; AS is %u%s", as, VTYNL);
 +          vty_out (vty, "BGP is already running; AS is %u\n", as);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case BGP_ERR_INSTANCE_MISMATCH:
 -          vty_out (vty, "BGP instance name and AS number mismatch%s", VTYNL);
 -          vty_out (vty, "BGP instance is already running; AS is %u%s",
 -                   as, VTYNL);
 +          vty_out (vty, "BGP instance name and AS number mismatch\n");
 +          vty_out (vty, "BGP instance is already running; AS is %u\n",
 +                   as);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        /* Pending: handle when user tries to change a view to vrf n vv. */
@@@ -945,14 -951,14 +945,14 @@@ DEFUN (no_router_bgp
  
        if (bgp == NULL)
          {
 -          vty_out (vty, "%% No BGP process is configured%s", VTYNL);
 +          vty_out (vty, "%% No BGP process is configured\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        if (listcount(bm->bgp) > 1)
          {
 -          vty_out (vty, "%% Multiple BGP processes are configured%s", VTYNL);
 +          vty_out (vty, "%% Multiple BGP processes are configured\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    else
        bgp = bgp_lookup (as, name);
        if (! bgp)
          {
 -          vty_out (vty, "%% Can't find BGP instance%s", VTYNL);
 +          vty_out (vty, "%% Can't find BGP instance\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -1006,8 -1012,8 +1006,8 @@@ DEFPY (no_bgp_router_id
      {
        if (! IPV4_ADDR_SAME (&bgp->router_id_static, &router_id))
        {
 -        vty_outln (vty, "%% BGP router-id doesn't match");
 +        vty_out (vty, "%% BGP router-id doesn't match\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
  
@@@ -1035,8 -1041,8 +1035,8 @@@ DEFUN (bgp_cluster_id
    ret = inet_aton (argv[idx_ipv4]->arg, &cluster);
    if (! ret)
      {
 -      vty_out (vty, "%% Malformed bgp cluster identifier%s", VTYNL);
 +      vty_out (vty, "%% Malformed bgp cluster identifier\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bgp_cluster_id_set (bgp, &cluster);
@@@ -1182,11 -1189,11 +1182,11 @@@ bgp_maxpaths_config_vty (struct vty *vt
    if (ret < 0)
      {
        vty_out (vty,
 -             "%% Failed to %sset maximum-paths %s %u for afi %u, safi %u%s",
 +             "%% Failed to %sset maximum-paths %s %u for afi %u, safi %u\n",
               (set == 1) ? "" : "un",
               (peer_type == BGP_PEER_EBGP) ? "ebgp" : "ibgp",
 -             maxpaths, afi, safi, VTYNL);
 +             maxpaths, afi, safi);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bgp_recalculate_all_bestpaths (bgp);
@@@ -1319,8 -1326,9 +1319,8 @@@ bgp_update_delay_config_vty (struct vt
    establish_wait = atoi (wait);
    if (update_delay < establish_wait)
      {
 -      vty_out (vty, "%%Failed: update-delay less than the establish-wait!%s",
 -               VTYNL);
 +      vty_out (vty, "%%Failed: update-delay less than the establish-wait!\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bgp->v_update_delay = update_delay;
@@@ -1617,8 -1625,9 +1617,8 @@@ DEFUN (bgp_timers
    /* Holdtime value check. */
    if (holdtime < 3 && holdtime != 0)
      {
 -      vty_out (vty, "%% hold time value must be either 0 or greater than 3%s",
 -             VTYNL);
 +      vty_out (vty, "%% hold time value must be either 0 or greater than 3\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bgp_timers_set (bgp, keepalive, holdtime);
@@@ -1751,8 -1760,9 +1751,8 @@@ DEFUN (no_bgp_deterministic_med
  
        if (bestpath_per_as_used)
          {
 -          vty_out (vty, "bgp deterministic-med cannot be disabled while addpath-tx-bestpath-per-AS is in use%s",
 -                   VTYNL);
 +          vty_out (vty, "bgp deterministic-med cannot be disabled while addpath-tx-bestpath-per-AS is in use\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        else
          {
@@@ -2444,16 -2454,17 +2444,16 @@@ DEFUN (bgp_listen_range
    ret = str2prefix (prefix, &range);
    if (! ret)
      {
 -      vty_out (vty, "%% Malformed listen range%s", VTYNL);
 +      vty_out (vty, "%% Malformed listen range\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    afi = family2afi(range.family);
  
    if (afi == AFI_IP6 && IN6_IS_ADDR_LINKLOCAL (&range.u.prefix6))
      {
 -      vty_out (vty, "%% Malformed listen range (link-local address)%s",
 -             VTYNL);
 +      vty_out (vty, "%% Malformed listen range (link-local address)\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    apply_mask (&range);
          return CMD_SUCCESS;
        else
          {
 -          vty_out (vty, "%% Same listen range is attached to peer-group %s%s",
 -                   existing_group->name, VTYNL);
 +          vty_out (vty, "%% Same listen range is attached to peer-group %s\n",
 +                   existing_group->name);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
    /* Check if an overlapping listen range exists. */
    if (listen_range_exists (bgp, &range, 0))
      {
 -      vty_out (vty, "%% Listen range overlaps with existing listen range%s",
 -               VTYNL);
 +      vty_out (vty, "%% Listen range overlaps with existing listen range\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    group = peer_group_lookup (bgp, peergroup);
    if (! group)
      {
 -      vty_out (vty, "%% Configure the peer-group first%s", VTYNL);
 +      vty_out (vty, "%% Configure the peer-group first\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = peer_group_listen_range_add(group, &range);
@@@ -2518,16 -2530,17 +2518,16 @@@ DEFUN (no_bgp_listen_range
    ret = str2prefix (prefix, &range);
    if (! ret)
      {
 -      vty_out (vty, "%% Malformed listen range%s", VTYNL);
 +      vty_out (vty, "%% Malformed listen range\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    afi = family2afi(range.family);
  
    if (afi == AFI_IP6 && IN6_IS_ADDR_LINKLOCAL (&range.u.prefix6))
      {
 -      vty_out (vty, "%% Malformed listen range (link-local address)%s",
 -             VTYNL);
 +      vty_out (vty, "%% Malformed listen range (link-local address)\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    apply_mask (&range);
    group = peer_group_lookup (bgp, peergroup);
    if (! group)
      {
 -      vty_out (vty, "%% Peer-group does not exist%s", VTYNL);
 +      vty_out (vty, "%% Peer-group does not exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = peer_group_listen_range_del(group, &range);
@@@ -2638,8 -2651,9 +2638,8 @@@ peer_remote_as_vty (struct vty *vty, co
            ret = peer_group_remote_as (bgp, peer_str, &as, as_type);
            if (ret < 0)
              {
 -              vty_out (vty, "%% Create the peer-group or interface first%s",
 -                       VTYNL);
 +              vty_out (vty, "%% Create the peer-group or interface first\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
            return CMD_SUCCESS;
          }
      {
        if (peer_address_self_check (bgp, &su))
          {
 -          vty_out (vty, "%% Can not configure the local system as neighbor%s",
 -                   VTYNL);
 +          vty_out (vty, "%% Can not configure the local system as neighbor\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        ret = peer_remote_as (bgp, &su, NULL, &as, as_type, afi, safi);
      }
    switch (ret)
      {
      case BGP_ERR_PEER_GROUP_MEMBER:
 -      vty_out (vty, "%% Peer-group AS %u. Cannot configure remote-as for member%s", as, VTYNL);
 +      vty_out (vty, "%% Peer-group AS %u. Cannot configure remote-as for member\n", as);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      case BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT:
 -      vty_out (vty, "%% The AS# can not be changed from %u to %s, peer-group members must be all internal or all external%s", as, as_str, VTYNL);
 +      vty_out (vty, "%% The AS# can not be changed from %u to %s, peer-group members must be all internal or all external\n", as, as_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return bgp_vty_return (vty, ret);
  }
@@@ -2699,8 -2714,8 +2699,8 @@@ peer_conf_interface_get (struct vty *vt
  
    if (group)
      {
 -      vty_out (vty, "%% Name conflict with peer-group %s", VTYNL);
 +      vty_out (vty, "%% Name conflict with peer-group \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (as_str)
        group = peer_group_lookup (bgp, peer_group_name);
        if (! group)
          {
 -          vty_out (vty, "%% Configure the peer-group first%s", VTYNL);
 +          vty_out (vty, "%% Configure the peer-group first\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        ret = peer_group_bind (bgp, &su, peer, group, &as);
@@@ -2881,8 -2899,8 +2884,8 @@@ DEFUN (neighbor_peer_group
    peer = peer_lookup_by_conf_if (bgp, argv[idx_word]->arg);
    if (peer)
      {
 -      vty_out (vty, "%% Name conflict with interface: %s", VTYNL);
 +      vty_out (vty, "%% Name conflict with interface: \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    group = peer_group_get (bgp, argv[idx_word]->arg);
@@@ -2930,8 -2951,8 +2936,8 @@@ DEFUN (no_neighbor
        peer_group_delete (group);
        else
        {
 -        vty_out (vty, "%% Create the peer-group first%s", VTYNL);
 +        vty_out (vty, "%% Create the peer-group first\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
    else
        {
            if (peer_dynamic_neighbor (peer))
              {
 -              vty_out (vty, "%% Operation not allowed on a dynamic neighbor%s",
 -                       VTYNL);
 +              vty_out (vty, "%% Operation not allowed on a dynamic neighbor\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
  
          other = peer->doppelganger;
@@@ -2985,8 -3007,8 +2991,8 @@@ DEFUN (no_neighbor_interface_config
      }
    else
      {
 -      vty_out (vty, "%% Create the bgp interface first%s", VTYNL);
 +      vty_out (vty, "%% Create the bgp interface first\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
@@@ -3008,8 -3030,8 +3014,8 @@@ DEFUN (no_neighbor_peer_group
      peer_group_delete (group);
    else
      {
 -      vty_out (vty, "%% Create the peer-group first%s", VTYNL);
 +      vty_out (vty, "%% Create the peer-group first\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
@@@ -3043,8 -3065,8 +3049,8 @@@ DEFUN (no_neighbor_interface_peer_group
      peer_group_remote_as_delete (group);
    else
      {
 -      vty_out (vty, "%% Create the peer-group or interface first%s", VTYNL);
 +      vty_out (vty, "%% Create the peer-group or interface first\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
@@@ -3309,40 -3331,42 +3315,40 @@@ DEFUN (neighbor_set_peer_group
        peer = peer_lookup_by_conf_if (bgp, argv[idx_peer]->arg);
        if (!peer)
          {
 -          vty_out (vty, "%% Malformed address or name: %s%s", argv[idx_peer]->arg, VTYNL);
 +          vty_out (vty, "%% Malformed address or name: %s\n", argv[idx_peer]->arg);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    else
      {
        if (peer_address_self_check (bgp, &su))
          {
 -          vty_out (vty, "%% Can not configure the local system as neighbor%s",
 -                   VTYNL);
 +          vty_out (vty, "%% Can not configure the local system as neighbor\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        /* Disallow for dynamic neighbor. */
        peer = peer_lookup (bgp, &su);
        if (peer && peer_dynamic_neighbor (peer))
          {
 -          vty_out (vty, "%% Operation not allowed on a dynamic neighbor%s",
 -                 VTYNL);
 +          vty_out (vty, "%% Operation not allowed on a dynamic neighbor\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
    group = peer_group_lookup (bgp, argv[idx_word]->arg);
    if (! group)
      {
 -      vty_out (vty, "%% Configure the peer-group first%s", VTYNL);
 +      vty_out (vty, "%% Configure the peer-group first\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = peer_group_bind (bgp, &su, peer, group, &as);
  
    if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT)
      {
 -      vty_out (vty, "%% Peer with AS %u cannot be in this peer-group, members must be all internal or all external%s", as, VTYNL);
 +      vty_out (vty, "%% Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n", as);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_vty_return (vty, ret);
@@@ -3379,8 -3403,8 +3385,8 @@@ DEFUN (no_neighbor_set_peer_group
    group = peer_group_lookup (bgp, argv[idx_word]->arg);
    if (! group)
      {
 -      vty_out (vty, "%% Configure the peer-group first%s", VTYNL);
 +      vty_out (vty, "%% Configure the peer-group first\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = peer_group_unbind (bgp, peer, group);
@@@ -3414,8 -3438,8 +3420,8 @@@ peer_flag_modify_vty (struct vty *vty, 
     */
    if (peer->conf_if && (flag == PEER_FLAG_DISABLE_CONNECTED_CHECK)) {
      vty_out (vty, "%s is directly connected peer, cannot accept disable-"
 -                  "connected-check%s", ip_str, VTYNL);
 +                  "connected-check\n", ip_str);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    if (!set && flag == PEER_FLAG_SHUTDOWN)
@@@ -4619,8 -4649,9 +4631,8 @@@ peer_update_source_vty (struct vty *vty
          {
            if (str2prefix (source_str, &p))
              {
 -              vty_out (vty, "%% Invalid update-source, remove prefix length %s",
 -                       VTYNL);
 +              vty_out (vty, "%% Invalid update-source, remove prefix length \n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
            else
            peer_update_source_if_set (peer, source_str);
@@@ -6030,9 -6067,9 +6048,9 @@@ DEFUN (neighbor_ttl_security
     * we should not accept a ttl-security hops value greater than 1.
     */
    if (peer->conf_if && (gtsm_hops > 1)) {
 -    vty_out (vty, "%s is directly connected peer, hops cannot exceed 1%s",
 -                  argv[idx_peer]->arg, VTYNL);
 +    vty_out (vty, "%s is directly connected peer, hops cannot exceed 1\n",
 +                  argv[idx_peer]->arg);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return bgp_vty_return (vty, peer_ttl_security_hops_set (peer, gtsm_hops));
@@@ -9907,8 -10002,8 +9925,8 @@@ DEFUN (bgp_redistribute_ipv4
    type = proto_redistnum (AFI_IP, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    bgp_redist_add(bgp, AFI_IP, type, 0);
    return bgp_redistribute_set (bgp, AFI_IP, type, 0);
@@@ -9937,8 -10032,8 +9955,8 @@@ DEFUN (bgp_redistribute_ipv4_rmap
    type = proto_redistnum (AFI_IP, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    red = bgp_redist_add(bgp, AFI_IP, type, 0);
@@@ -9972,8 -10067,8 +9990,8 @@@ DEFUN (bgp_redistribute_ipv4_metric
    type = proto_redistnum (AFI_IP, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    metric = strtoul(argv[idx_number]->arg, NULL, 10);
  
@@@ -10011,8 -10106,8 +10029,8 @@@ DEFUN (bgp_redistribute_ipv4_rmap_metri
    type = proto_redistnum (AFI_IP, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    metric = strtoul(argv[idx_number]->arg, NULL, 10);
  
@@@ -10053,8 -10148,8 +10071,8 @@@ DEFUN (bgp_redistribute_ipv4_metric_rma
    type = proto_redistnum (AFI_IP, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    metric = strtoul(argv[idx_number]->arg, NULL, 10);
  
@@@ -10343,8 -10438,8 +10361,8 @@@ DEFUN (no_bgp_redistribute_ipv4
    type = proto_redistnum (AFI_IP, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return bgp_redistribute_unset (bgp, AFI_IP, type, 0);
  }
@@@ -10373,8 -10468,8 +10391,8 @@@ DEFUN (bgp_redistribute_ipv6
    type = proto_redistnum (AFI_IP6, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    bgp_redist_add(bgp, AFI_IP6, type, 0);
@@@ -10398,8 -10493,8 +10416,8 @@@ DEFUN (bgp_redistribute_ipv6_rmap
    type = proto_redistnum (AFI_IP6, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    red = bgp_redist_add(bgp, AFI_IP6, type, 0);
@@@ -10425,8 -10520,8 +10443,8 @@@ DEFUN (bgp_redistribute_ipv6_metric
    type = proto_redistnum (AFI_IP6, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    metric = strtoul(argv[idx_number]->arg, NULL, 10);
  
@@@ -10456,8 -10551,8 +10474,8 @@@ DEFUN (bgp_redistribute_ipv6_rmap_metri
    type = proto_redistnum (AFI_IP6, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    metric = strtoul(argv[idx_number]->arg, NULL, 10);
  
@@@ -10488,8 -10583,8 +10506,8 @@@ DEFUN (bgp_redistribute_ipv6_metric_rma
    type = proto_redistnum (AFI_IP6, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    metric = strtoul(argv[idx_number]->arg, NULL, 10);
  
@@@ -10517,8 -10612,8 +10535,8 @@@ DEFUN (no_bgp_redistribute_ipv6
    type = proto_redistnum (AFI_IP6, argv[idx_protocol]->text);
    if (type < 0)
      {
 -      vty_out (vty, "%% Invalid route type%s", VTYNL);
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return bgp_redistribute_unset (bgp, AFI_IP6, type, 0);
@@@ -12001,8 -12097,8 +12019,8 @@@ lcommunity_list_set_vty (struct vty *vt
    cl_name = argv[idx]->arg;
    if (reject_all_digit_name && all_digit (cl_name))
      {
 -      vty_out (vty, "%% Community name cannot have all digits%s", VTYNL);
 +      vty_out (vty, "%% Community name cannot have all digits\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    idx = 0;
diff --cc bgpd/bgpd.c
Simple merge
index 90d195d50f02afa1175633639ca32f0f2ca13ff9,4a2cea4808b1efea048717beab646cbf6b6e4a20..d04b186dffadd3825bdf1cd3936c92b562221554
@@@ -299,8 -299,8 +299,8 @@@ DEFUN (vnc_advertise_un_method
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "VNC not configured");
 +      vty_out (vty, "VNC not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
  
@@@ -345,10 -345,10 +345,10 @@@ set_ecom_list 
        ecomadd = ecommunity_str2com (argv[0]->arg, ECOMMUNITY_ROUTE_TARGET, 0);
        if (!ecomadd)
          {
 -          vty_outln (vty, "Malformed community-list value");
 +          vty_out (vty, "Malformed community-list value\n");
            if (ecom)
              ecommunity_free (&ecom);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        if (ecom)
@@@ -435,14 -435,14 +435,14 @@@ DEFUN (vnc_defaults_rd
  
        if (!argv[1]->arg[8] || *end)
          {
 -          vty_outln (vty, "%% Malformed rd");
 +          vty_out (vty, "%% Malformed rd\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (value32 > 0xffff)
          {
 -          vty_outln (vty, "%% Malformed rd (must be less than %u",
 +          vty_out (vty, "%% Malformed rd (must be less than %u\n",
                     0x0ffff);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        memset (&prd, 0, sizeof (prd));
        ret = str2prefix_rd (argv[1]->arg, &prd);
        if (!ret)
          {
 -          vty_outln (vty, "%% Malformed rd");
 +          vty_out (vty, "%% Malformed rd\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -491,15 -491,15 +491,15 @@@ DEFUN (vnc_defaults_l2rd
        value = value_l & 0xff;
        if (!argv[1]->arg[0] || *end)
          {
 -          vty_outln (vty, "%% Malformed l2 nve ID \"%s\"",argv[1]->arg);
 +          vty_out (vty, "%% Malformed l2 nve ID \"%s\"\n",argv[1]->arg);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if ((value_l < 1) || (value_l > 0xff))
          {
 -          vty_outln (vty,
 -                   "%% Malformed l2 nve id (must be greater than 0 and less than %u",
 +          vty_out (vty,
 +                   "%% Malformed l2 nve id (must be greater than 0 and less than %u\n",
                     0x100);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    bgp->rfapi_cfg->flags |= BGP_VNC_CONFIG_L2RD;
@@@ -800,21 -800,21 +800,21 @@@ DEFUN (vnc_redistribute_rh_roo_localadm
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "RFAPI not configured");
 +      vty_out (vty, "RFAPI not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    localadmin = strtoul (argv[4]->arg, &endptr, 0);
    if (!argv[4]->arg[0] || *endptr)
      {
 -      vty_outln (vty, "%% Malformed value");
 +      vty_out (vty, "%% Malformed value\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (localadmin > 0xffff)
      {
 -      vty_outln (vty, "%% Value out of range (0-%d)", 0xffff);
 +      vty_out (vty, "%% Value out of range (0-%d)\n", 0xffff);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp->rfapi_cfg->resolve_nve_roo_local_admin == localadmin)
@@@ -856,8 -856,8 +856,8 @@@ DEFUN (vnc_redistribute_mode
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "RFAPI not configured");
 +      vty_out (vty, "RFAPI not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
  
        break;
  
      default:
 -      vty_outln (vty, "unknown redistribute mode");
 +      vty_out (vty, "unknown redistribute mode\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (newmode != bgp->rfapi_cfg->redist_mode)
@@@ -911,14 -911,14 +911,14 @@@ DEFUN (vnc_redistribute_protocol
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "RFAPI not configured");
 +      vty_out (vty, "RFAPI not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (rfapi_str2route_type (argv[2]->arg, argv[3]->arg, &afi, &type))
      {
 -      vty_outln (vty, "%% Invalid route type");
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (type == ZEBRA_ROUTE_BGP_DIRECT_EXT)
@@@ -959,14 -959,14 +959,14 @@@ DEFUN (vnc_no_redistribute_protocol
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "RFAPI not configured");
 +      vty_out (vty, "RFAPI not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (rfapi_str2route_type (argv[3]->arg, argv[4]->arg, &afi, &type))
      {
 -      vty_outln (vty, "%% Invalid route type");
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    VNC_REDIST_DISABLE (bgp, afi, type);
@@@ -1000,14 -1000,14 +1000,14 @@@ DEFUN (vnc_redistribute_bgp_exterior
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "RFAPI not configured");
 +      vty_out (vty, "RFAPI not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (rfapi_str2route_type (argv[2]->arg, "bgp-direct-to-nve-groups", &afi, &type))
      {
 -      vty_outln (vty, "%% Invalid route type");
 +      vty_out (vty, "%% Invalid route type\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp->rfapi_cfg->redist_bgp_exterior_view_name)
@@@ -1032,8 -1032,8 +1032,8 @@@ DEFUN (vnc_redistribute_nvegroup
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vnc_redistribute_prechange (bgp);
@@@ -1065,8 -1065,8 +1065,8 @@@ DEFUN (vnc_redistribute_no_nvegroup
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vnc_redistribute_prechange (bgp);
@@@ -1095,8 -1095,8 +1095,8 @@@ DEFUN (vnc_redistribute_lifetime
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vnc_redistribute_prechange (bgp);
@@@ -1135,8 -1135,8 +1135,8 @@@ DEFUN (vnc_redist_bgpdirect_no_prefixli
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[3]->text, "bgp-direct"))
@@@ -1188,8 -1188,8 +1188,8 @@@ DEFUN (vnc_redist_bgpdirect_prefixlist
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[2]->text, "bgp-direct"))
@@@ -1238,8 -1238,8 +1238,8 @@@ DEFUN (vnc_redist_bgpdirect_no_routemap
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[3]->text, "bgp-direct"))
@@@ -1278,8 -1278,8 +1278,8 @@@ DEFUN (vnc_redist_bgpdirect_routemap
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[2]->text, "bgp-direct"))
@@@ -1323,16 -1323,16 +1323,16 @@@ DEFUN (vnc_nve_group_redist_bgpdirect_n
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[3]->text, "ipv4"))
@@@ -1372,16 -1372,16 +1372,16 @@@ DEFUN (vnc_nve_group_redist_bgpdirect_p
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[2]->text, "ipv4"))
@@@ -1419,16 -1419,16 +1419,16 @@@ DEFUN (vnc_nve_group_redist_bgpdirect_n
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vnc_redistribute_prechange (bgp);
@@@ -1455,16 -1455,16 +1455,16 @@@ DEFUN (vnc_nve_group_redist_bgpdirect_r
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vnc_redistribute_prechange (bgp);
@@@ -1504,8 -1504,8 +1504,8 @@@ DEFUN (vnc_export_mode
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "VNC not configured");
 +      vty_out (vty, "VNC not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[2]->arg[0] == 'b')
            newmode = BGP_VNC_CONFIG_EXPORT_BGP_MODE_RH;
            break;
          default:
 -          vty_outln (vty, "Invalid mode specified");
 +          vty_out (vty, "Invalid mode specified\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        if (newmode == oldmode)
        /*
         * export to zebra with RH mode is not yet implemented
         */
 -      vty_outln (vty,"Changing modes for zebra export not implemented yet");
 +      vty_out (vty,"Changing modes for zebra export not implemented yet\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
  
        oldmode = bgp->rfapi_cfg->flags & BGP_VNC_CONFIG_EXPORT_ZEBRA_MODE_BITS;
        bgp->rfapi_cfg->flags &= ~BGP_VNC_CONFIG_EXPORT_ZEBRA_MODE_BITS;
              }
            break;
          default:
 -          vty_outln (vty, "Invalid mode");
 +          vty_out (vty, "Invalid mode\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -1625,8 -1625,8 +1625,8 @@@ DEFUN (vnc_export_nvegroup
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rfg_new = bgp_rfapi_cfg_match_byname (bgp, argv[5]->arg, RFAPI_GROUP_CFG_NVE);
@@@ -1727,8 -1727,8 +1727,8 @@@ DEFUN (vnc_no_export_nvegroup
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[2]->arg[0] == 'b')
@@@ -1788,16 -1788,16 +1788,16 @@@ DEFUN (vnc_nve_group_export_no_prefixli
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[3]->text, "ipv4"))
@@@ -1857,16 -1857,16 +1857,16 @@@ DEFUN (vnc_nve_group_export_prefixlist
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[2]->text, "ipv4"))
@@@ -1914,16 -1914,16 +1914,16 @@@ DEFUN (vnc_nve_group_export_no_routemap
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[2]->arg[0] == 'b')
@@@ -1973,16 -1973,16 +1973,16 @@@ DEFUN (vnc_nve_group_export_routemap
  
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[1]->arg[0] == 'b')
@@@ -2024,8 -2024,8 +2024,8 @@@ DEFUN (vnc_nve_export_no_prefixlist
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[4]->text, "ipv4"))
@@@ -2085,8 -2085,8 +2085,8 @@@ DEFUN (vnc_nve_export_prefixlist
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[3]->text, "ipv4"))
@@@ -2132,8 -2132,8 +2132,8 @@@ DEFUN (vnc_nve_export_no_routemap
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[3]->arg[0] == 'b')
@@@ -2183,8 -2183,8 +2183,8 @@@ DEFUN (vnc_nve_export_routemap
  
    if (!(hc = bgp->rfapi_cfg))
      {
 -      vty_outln (vty, "rfapi not configured");
 +      vty_out (vty, "rfapi not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[2]->arg[0] == 'b')
@@@ -2430,8 -2430,8 +2430,8 @@@ DEFUN_NOSH (vnc_nve_group
        if (!rfg)
          {
            /* Error out of memory */
 -          vty_out (vty, "Can't allocate memory for NVE group%s", VTYNL);
 +          vty_out (vty, "Can't allocate memory for NVE group\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        /* Copy defaults from struct rfapi_cfg */
@@@ -2644,8 -2644,8 +2644,8 @@@ bgp_rfapi_delete_named_nve_group 
        if (!rfg)
          {
            if (vty)
 -            vty_outln (vty, "No NVE group named \"%s\"",rfg_name);
 +            vty_out (vty, "No NVE group named \"%s\"\n",rfg_name);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -2734,21 -2734,21 +2734,21 @@@ DEFUN (vnc_nve_group_prefix
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!str2prefix (argv[2]->arg, &p))
      {
 -      vty_outln (vty, "Malformed prefix \"%s\"", argv[2]->arg);
 +      vty_out (vty, "Malformed prefix \"%s\"\n", argv[2]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    afi = family2afi (p.family);
    if (!afi)
      {
 -      vty_outln (vty, "Unsupported address family");
 +      vty_out (vty, "Unsupported address family\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[1]->arg[0] == 'u')
            /*
             * different group name: fail
             */
 -          vty_outln (vty, "nve group \"%s\" already has \"%s\" prefix %s",
 +          vty_out (vty, "nve group \"%s\" already has \"%s\" prefix %s\n",
                     ((struct rfapi_nve_group_cfg *) (rn->info))->name,
                     argv[1]->arg, argv[2]->arg);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        else
          {
@@@ -2853,8 -2853,8 +2853,8 @@@ DEFUN (vnc_nve_group_rt_import
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rc = set_ecom_list (vty, argc - 2, argv + 2, &rfg->rt_import_list);
@@@ -2919,8 -2919,8 +2919,8 @@@ DEFUN (vnc_nve_group_rt_export
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp->rfapi_cfg->rfg_redist == rfg)
@@@ -2957,8 -2957,8 +2957,8 @@@ DEFUN (vnc_nve_group_rt_both
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rc = set_ecom_list (vty, argc - 2, argv + 2, &rfg->rt_import_list);
@@@ -3038,8 -3038,8 +3038,8 @@@ DEFUN (vnc_nve_group_l2rd
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[1]->text, "auto:vn"))
  
        if (!argv[1]->arg[0] || *end)
          {
 -          vty_outln (vty, "%% Malformed l2 nve ID \"%s\"",argv[1]->arg);
 +          vty_out (vty, "%% Malformed l2 nve ID \"%s\"\n",argv[1]->arg);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if ((value_l < 1) || (value_l > 0xff))
          {
 -          vty_outln (vty,
 -                   "%% Malformed l2 nve id (must be greater than 0 and less than %u",
 +          vty_out (vty,
 +                   "%% Malformed l2 nve id (must be greater than 0 and less than %u\n",
                     0x100);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        rfg->l2rd = value;
@@@ -3085,8 -3085,8 +3085,8 @@@ DEFUN (vnc_nve_group_no_l2rd
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rfg->l2rd = 0;
@@@ -3110,8 -3110,8 +3110,8 @@@ DEFUN (vnc_nve_group_rd
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!strncmp (argv[1]->arg, "auto:vn:", 8))
  
        if (!argv[1]->arg[8] || *end)
          {
 -          vty_outln (vty, "%% Malformed rd");
 +          vty_out (vty, "%% Malformed rd\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (value32 > 0xffff)
          {
 -          vty_outln (vty, "%% Malformed rd (must be less than %u",
 +          vty_out (vty, "%% Malformed rd (must be less than %u\n",
                     0x0ffff);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        memset (&prd, 0, sizeof (prd));
        ret = str2prefix_rd (argv[1]->arg, &prd);
        if (!ret)
          {
 -          vty_outln (vty, "%% Malformed rd");
 +          vty_out (vty, "%% Malformed rd\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -3186,8 -3186,8 +3186,8 @@@ DEFUN (vnc_nve_group_responselifetime
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[1]->text, "infinite"))
@@@ -3255,8 -3255,8 +3255,8 @@@ DEFUN_NOSH (vnc_vrf_policy
  
    if (!bgp)
      {
 -      vty_out (vty, "No BGP process is configured%s", VTYNL);
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Search for name */
        if (!rfg)
          {
            /* Error out of memory */
 -          vty_out (vty, "Can't allocate memory for NVE group%s", VTYNL);
 +          vty_out (vty, "Can't allocate memory for NVE group\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    /*
@@@ -3292,8 -3292,8 +3292,8 @@@ DEFUN (vnc_no_vrf_policy
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return bgp_rfapi_delete_named_nve_group (vty, bgp, argv[2]->arg, RFAPI_GROUP_CFG_VRF);
  }
@@@ -3311,16 -3311,16 +3311,16 @@@ DEFUN (vnc_vrf_policy_label
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    label = strtoul(argv[1]->arg, NULL, 10);
@@@ -3352,8 -3352,8 +3352,8 @@@ DEFUN (vnc_vrf_policy_no_label
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current VRF group no longer exists");
 +      vty_out (vty, "Current VRF group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp->rfapi_cfg->rfg_redist == rfg)
@@@ -3387,8 -3387,8 +3387,8 @@@ DEFUN (vnc_vrf_policy_nexthop
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current VRF no longer exists");
 +      vty_out (vty, "Current VRF no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp->rfapi_cfg->rfg_redist == rfg)
@@@ -3437,16 -3437,16 +3437,16 @@@ DEFUN (vnc_vrf_policy_rt_import
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rc = set_ecom_list (vty, argc-2, argv+2, &rfg->rt_import_list);
@@@ -3509,16 -3509,16 +3509,16 @@@ DEFUN (vnc_vrf_policy_rt_export
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (bgp->rfapi_cfg->rfg_redist == rfg)
@@@ -3553,16 -3553,16 +3553,16 @@@ DEFUN (vnc_vrf_policy_rt_both
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rc = set_ecom_list (vty, argc-2, argv+2, &rfg->rt_import_list);
@@@ -3641,16 -3641,16 +3641,16 @@@ DEFUN (vnc_vrf_policy_rd
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->nve_groups_sequential, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current NVE group no longer exists");
 +      vty_out (vty, "Current NVE group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!strncmp (argv[1]->arg, "auto:nh:", 8))
  
        if (!*(argv[1]->arg + 5) || *end)
          {
 -          vty_outln (vty, "%% Malformed rd");
 +          vty_out (vty, "%% Malformed rd\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (value32 > 0xffff)
          {
 -          vty_outln (vty, "%% Malformed rd (must be less than %u",
 +          vty_out (vty, "%% Malformed rd (must be less than %u\n",
                     0x0ffff);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        memset (&prd, 0, sizeof (prd));
        ret = str2prefix_rd (argv[1]->arg, &prd);
        if (!ret)
          {
 -          vty_outln (vty, "%% Malformed rd");
 +          vty_out (vty, "%% Malformed rd\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -3742,8 -3742,8 +3742,8 @@@ DEFUN_NOSH (vnc_l2_group
  
    if (!bgp)
      {
 -      vty_out (vty, "No BGP process is configured%s", VTYNL);
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Search for name */
        if (!rfg)
          {
            /* Error out of memory */
 -          vty_out (vty, "Can't allocate memory for L2 group%s", VTYNL);
 +          vty_out (vty, "Can't allocate memory for L2 group\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        rfg->name = strdup (argv[1]->arg);
        /* add to tail of list */
@@@ -3808,8 -3808,8 +3808,8 @@@ bgp_rfapi_delete_named_l2_group 
        if (!rfg)
          {
            if (vty)
 -            vty_outln (vty, "No L2 group named \"%s\"",rfg_name);
 +            vty_out (vty, "No L2 group named \"%s\"\n",rfg_name);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -3833,8 -3833,8 +3833,8 @@@ DEFUN (vnc_no_l2_group
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return bgp_rfapi_delete_named_l2_group (vty, bgp, argv[3]->arg);
  }
@@@ -3851,16 -3851,16 +3851,16 @@@ DEFUN (vnc_l2_group_lni
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->l2_groups, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current L2 group no longer exists");
 +      vty_out (vty, "Current L2 group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rfg->logical_net_id = strtoul(argv[1]->arg, NULL, 10);
@@@ -3880,16 -3880,16 +3880,16 @@@ DEFUN (vnc_l2_group_labels
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->l2_groups, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current L2 group no longer exists");
 +      vty_out (vty, "Current L2 group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ll = rfg->labels;
@@@ -3924,23 -3924,23 +3924,23 @@@ DEFUN (vnc_l2_group_no_labels
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->l2_groups, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current L2 group no longer exists");
 +      vty_out (vty, "Current L2 group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ll = rfg->labels;
    if (ll == NULL)
      {
 -      vty_outln (vty, "Label no longer associated with group");
 +      vty_out (vty, "Label no longer associated with group\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    argc-=2;
@@@ -3987,16 -3987,16 +3987,16 @@@ DEFUN (vnc_l2_group_rt
      }
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* make sure it's still in list */
    if (!listnode_lookup (bgp->rfapi_cfg->l2_groups, rfg))
      {
        /* Not in list anymore */
 -      vty_outln (vty, "Current L2 group no longer exists");
 +      vty_out (vty, "Current L2 group no longer exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (do_import)
index 1b44cf6c0ad5ffd08bc25294aa48a5706faa5de0,1ea8004e29f47d2c9d116ecfb41d80ebdf191d51..89f69637f5b8dccaf9e40f744b3cc721f29ea558
@@@ -3101,13 -3101,13 +3101,13 @@@ DEFUN 
  
    if (!str2prefix (argv[5]->arg, &pfx))
      {
 -      vty_outln (vty, "Malformed address \"%s\"", argv[5]->arg);
 +      vty_out (vty, "Malformed address \"%s\"\n", argv[5]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (pfx.family != AF_INET && pfx.family != AF_INET6)
      {
 -      vty_outln (vty, "Invalid address \"%s\"", argv[5]->arg);
 +      vty_out (vty, "Invalid address \"%s\"\n", argv[5]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv[4]->arg[0] == 'u')
@@@ -3230,9 -3230,9 +3230,9 @@@ DEFUN (debug_rfapi_close_vn_un
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[4]->arg, argv[6]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rc = rfapi_close (handle);
@@@ -3258,8 -3258,8 +3258,8 @@@ DEFUN (debug_rfapi_close_rfd
  
    if (*endptr != '\0' || (uintptr_t) handle == UINTPTR_MAX)
      {
 -      vty_outln (vty, "Invalid value: %s", argv[4]->arg);
 +      vty_out (vty, "Invalid value: %s\n", argv[4]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rc = rfapi_close (handle);
@@@ -3311,9 -3311,9 +3311,9 @@@ DEFUN (debug_rfapi_register_vn_un
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[4]->arg, argv[6]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
     */
    if (!str2prefix (argv[8]->arg, &pfx))
      {
 -      vty_outln (vty, "Malformed prefix \"%s\"", argv[8]->arg);
 +      vty_out (vty, "Malformed prefix \"%s\"\n", argv[8]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (pfx.family != AF_INET && pfx.family != AF_INET6)
      {
 -      vty_outln (vty, "Bad family for prefix \"%s\"", argv[8]->arg);
 +      vty_out (vty, "Bad family for prefix \"%s\"\n", argv[8]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    rfapiQprefix2Rprefix (&pfx, &hpfx);
  
@@@ -3400,9 -3400,9 +3400,9 @@@ DEFUN (debug_rfapi_register_vn_un_l2o
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[4]->arg, argv[6]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
     */
    if (!str2prefix (argv[8]->arg, &pfx))
      {
 -      vty_outln (vty, "Malformed prefix \"%s\"", argv[8]->arg);
 +      vty_out (vty, "Malformed prefix \"%s\"\n", argv[8]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (pfx.family != AF_INET && pfx.family != AF_INET6)
      {
 -      vty_outln (vty, "Bad family for prefix \"%s\"", argv[8]->arg);
 +      vty_out (vty, "Bad family for prefix \"%s\"\n", argv[8]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    rfapiQprefix2Rprefix (&pfx, &hpfx);
  
    optary[opt_next].v.l2addr.logical_net_id = strtoul(argv[14]->arg, NULL, 10);
    if ((rc = rfapiStr2EthAddr (argv[12]->arg, &optary[opt_next].v.l2addr.macaddr)))
      {
 -      vty_outln (vty, "Bad mac address \"%s\"", argv[12]->arg);
 +      vty_out (vty, "Bad mac address \"%s\"\n", argv[12]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    optary[opt_next].type = RFAPI_VN_OPTION_TYPE_L2ADDR;
    if (opt_next)
@@@ -3496,9 -3496,9 +3496,9 @@@ DEFUN (debug_rfapi_unregister_vn_un
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[4]->arg, argv[6]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
     */
    if (!str2prefix (argv[8]->arg, &pfx))
      {
 -      vty_outln (vty, "Malformed prefix \"%s\"", argv[8]->arg);
 +      vty_out (vty, "Malformed prefix \"%s\"\n", argv[8]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (pfx.family != AF_INET && pfx.family != AF_INET6)
      {
 -      vty_outln (vty, "Bad family for prefix \"%s\"", argv[8]->arg);
 +      vty_out (vty, "Bad family for prefix \"%s\"\n", argv[8]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    rfapiQprefix2Rprefix (&pfx, &hpfx);
  
@@@ -3567,9 -3567,9 +3567,9 @@@ DEFUN (debug_rfapi_query_vn_un
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[4]->arg, argv[6]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
@@@ -3642,15 -3642,15 +3642,15 @@@ DEFUN (debug_rfapi_query_vn_un_l2o
    if ((rc = rfapiCliGetRfapiIpAddr (vty, argv[2], &target)))
      return rc;
  #else
 -  vty_outln (vty, "%% This command is broken.");
 +  vty_out (vty, "%% This command is broken.\n");
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  #endif
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[4]->arg, argv[6]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
    memset (&l2o_buf, 0, sizeof (l2o_buf));
    if (rfapiStr2EthAddr (argv[10]->arg, &l2o_buf.macaddr))
      {
 -      vty_outln (vty, "Bad mac address \"%s\"", argv[10]->arg);
 +      vty_out (vty, "Bad mac address \"%s\"\n", argv[10]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    l2o_buf.logical_net_id = strtoul(argv[8]->arg, NULL, 10);
@@@ -3750,9 -3750,9 +3750,9 @@@ DEFUN (debug_rfapi_query_done_vn_un
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[5]->arg, argv[7]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
@@@ -3786,15 -3786,15 +3786,15 @@@ DEFUN (debug_rfapi_show_import
    bgp = bgp_get_default ();     /* assume 1 instance for now */
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP instance");
 +      vty_out (vty, "No BGP instance\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    h = bgp->rfapi;
    if (!h)
      {
 -      vty_outln (vty, "No RFAPI instance");
 +      vty_out (vty, "No RFAPI instance\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /*
@@@ -3888,9 -3889,9 +3888,9 @@@ DEFUN (debug_rfapi_show_import_vn_un
  
    if (rfapi_find_handle_vty (vty, &vn, &un, &handle))
      {
 -      vty_outln (vty, "can't locate handle matching vn=%s, un=%s",
 +      vty_out (vty, "can't locate handle matching vn=%s, un=%s\n",
                 argv[5]->arg, argv[7]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rfd = (struct rfapi_descriptor *) handle;
@@@ -3919,13 -3920,13 +3919,13 @@@ DEFUN (debug_rfapi_response_omit_self
  
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "VNC not configured");
 +      vty_out (vty, "VNC not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (strmatch(argv[3]->text, "on"))
index 1b55fbbda9e2dc121a3a362d27fe9b14b0e4aecb,ef08699f74405b02a7010ed654b759c2e558857b..3b7d08f91befd159888b793afd43dae6e9784f34
@@@ -2220,8 -2221,8 +2220,8 @@@ register_add 
         if (!bgp)
           {
             if (vty)
 -             vty_outln (vty, "BGP not configured");
 +             vty_out (vty, "BGP not configured\n");
-            return CMD_WARNING;
+            return CMD_WARNING_CONFIG_FAILED;
           }
  
         h = bgp->rfapi;
         if (!h || !rfapi_cfg)
           {
             if (vty)
 -             vty_outln (vty, "RFAPI not configured");
 +             vty_out (vty, "RFAPI not configured\n");
-            return CMD_WARNING;
+            return CMD_WARNING_CONFIG_FAILED;
           }
  
         for (; argc; --argc, ++argv)
               {
                 if (arg_lnh)
                   {
 -                   vty_outln (vty,"local-next-hop specified more than once");
 +                   vty_out (vty,"local-next-hop specified more than once\n");
-                    return CMD_WARNING;
+                    return CMD_WARNING_CONFIG_FAILED;
                   }
                 if (argc <= 1)
                   {
 -                   vty_outln (vty,"Missing parameter for local-next-hop");
 +                   vty_out (vty,"Missing parameter for local-next-hop\n");
-                    return CMD_WARNING;
+                    return CMD_WARNING_CONFIG_FAILED;
                   }
                 ++argv, --argc;
                 arg_lnh = argv[0]->arg;
               {
                 if (arg_lnh_cost)
                   {
 -                   vty_outln (vty,"local-cost specified more than once");
 +                   vty_out (vty,"local-cost specified more than once\n");
-                    return CMD_WARNING;
+                    return CMD_WARNING_CONFIG_FAILED;
                   }
                 if (argc <= 1)
                   {
 -                   vty_outln (vty,"Missing parameter for local-cost");
 +                   vty_out (vty,"Missing parameter for local-cost\n");
-                    return CMD_WARNING;
+                    return CMD_WARNING_CONFIG_FAILED;
                   }
                 ++argv, --argc;
                 arg_lnh_cost = argv[0]->arg;
                 arg_prefix = "0::0/128";
                 break;
               default:
 -               vty_outln (vty,"Internal error, unknown VN address family");
 +               vty_out (vty,"Internal error, unknown VN address family\n");
-                return CMD_WARNING;
+                return CMD_WARNING_CONFIG_FAILED;
               }
  
           }
           {
             if (!arg_vni)
               {
 -               vty_outln (vty,
 -                        "Missing \"vni\" parameter (mandatory with mac)");
 +               vty_out (vty,
 +                        "Missing \"vni\" parameter (mandatory with mac)\n");
-                return CMD_WARNING;
+                return CMD_WARNING_CONFIG_FAILED;
               }
             optary[opt_next].v.l2addr.logical_net_id = strtoul(arg_vni, NULL,
                                                                10);
                                  &rfd);
                 if (rc)
                   {
 -                   vty_outln (vty, "Can't open session for this NVE: %s",
 +                   vty_out (vty, "Can't open session for this NVE: %s\n",
                              rfapi_error_str(rc));
-                    rc = CMD_WARNING;
+                    rc = CMD_WARNING_CONFIG_FAILED;
                     goto fail;
                   }
               }
           }
  
         vnc_zlog_debug_verbose ("%s: rfapi_register failed", __func__);
 -       vty_out (vty, VTYNL);
 -       vty_outln (vty, "Registration failed.");
 -       vty_outln (vty,
 -                "Confirm that either the VN or UN address matches a configured NVE group.");
 +       vty_out (vty, "\n");
 +       vty_out (vty, "Registration failed.\n");
 +       vty_out (vty,
 +                "Confirm that either the VN or UN address matches a configured NVE group.\n");
-        return CMD_WARNING;
+        return CMD_WARNING_CONFIG_FAILED;
  
       fail:
         vnc_zlog_debug_verbose ("%s: fail, rc=%d", __func__, rc);
@@@ -5005,46 -5006,46 +5005,46 @@@ vnc_add_vrf_prefix (struct vty *vty
    bgp = bgp_get_default (); /* assume main instance for now */
    if (!bgp)
      {
 -      vty_outln (vty, "No BGP process is configured");
 +      vty_out (vty, "No BGP process is configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!bgp->rfapi || !bgp->rfapi_cfg)
      {
 -      vty_outln (vty, "VRF support not configured");
 +      vty_out (vty, "VRF support not configured\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rfg = bgp_rfapi_cfg_match_byname (bgp,  arg_vrf, RFAPI_GROUP_CFG_VRF);
    /* arg checks */
    if (!rfg)
      {
 -      vty_outln (vty, "VRF \"%s\" appears not to be configured.",
 +      vty_out (vty, "VRF \"%s\" appears not to be configured.\n",
                 arg_vrf);
-           return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!rfg->rt_export_list || !rfg->rfapi_import_table)
      {
 -      vty_outln (vty, "VRF \"%s\" is missing RT import/export RT configuration.",
 +      vty_out (vty, "VRF \"%s\" is missing RT import/export RT configuration.\n",
                 arg_vrf);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!rfg->rd.family && !arg_rd)
      {
 -      vty_outln (vty, "VRF \"%s\" isn't configured with an RD, so RD must be provided.",
 +      vty_out (vty, "VRF \"%s\" isn't configured with an RD, so RD must be provided.\n",
                 arg_vrf);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (rfg->label > MPLS_LABEL_MAX && !arg_label)
      {
 -      vty_outln (vty, "VRF \"%s\" isn't configured with a default labels, so a label must be provided.",
 +      vty_out (vty, "VRF \"%s\" isn't configured with a default labels, so a label must be provided.\n",
                 arg_vrf);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!str2prefix (arg_prefix, &pfx))
      {
 -      vty_outln (vty, "Malformed prefix \"%s\"",
 +      vty_out (vty, "Malformed prefix \"%s\"\n",
                 arg_prefix);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    rfapiQprefix2Rprefix (&pfx, &rpfx);
    memset (optary, 0, sizeof (optary));
        opt->type = RFAPI_VN_OPTION_TYPE_INTERNAL_RD;
        if (!str2prefix_rd (arg_rd, &opt->v.internal_rd))
          {
 -          vty_outln (vty, "Malformed RD \"%s\"",
 +          vty_out (vty, "Malformed RD \"%s\"\n",
                     arg_rd);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    if (rfg->label <= MPLS_LABEL_MAX || arg_label)
        pref = strtoul (arg_pref, &endptr, 10);
        if (*endptr != '\0')
          {
 -          vty_outln (vty, "%% Invalid local-preference value \"%s\"",
 +          vty_out (vty, "%% Invalid local-preference value \"%s\"\n",
                       arg_pref);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
           }
      }
    rpfx.cost = 255 - (pref & 255) ;
      }
  
    vnc_zlog_debug_verbose ("%s: rfapi_register failed", __func__);
 -  vty_outln (vty, "Add failed.");
 +  vty_out (vty, "Add failed.\n");
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (add_vrf_prefix_rd_label_pref,
index 21627a20a52f05b2edc39408674248b10e7a73ab,53669ce3b2c2686c681191529f8a3d2d43b193b7..1f9e1b10fe8c5de750a452533568f1722efa730a
@@@ -85,8 -85,8 +85,8 @@@ DEFUN (debug_bgp_vnc
          return CMD_SUCCESS;
        }
      }
 -  vty_outln (vty, "Unknown debug flag: %s", argv[3]->arg);
 +  vty_out (vty, "Unknown debug flag: %s\n", argv[3]->arg);
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (no_debug_bgp_vnc,
          return CMD_SUCCESS;
        }
      }
 -  vty_outln (vty, "Unknown debug flag: %s", argv[3]->arg);
 +  vty_out (vty, "Unknown debug flag: %s\n", argv[3]->arg);
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  
index 6714569140b864cd8ae61ef818921aa6048edbf7,8af8c7010d9c7f8337fd20c0045075cf5fbf8c92..1d85e764691ff852ffefddbbec77de00fcdc5bb2
@@@ -154,11 -154,11 +154,11 @@@ eigrp_route_match_add (struct vty *vty
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% Can't find rule.");
 +          vty_out (vty, "%% Can't find rule.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
 -          vty_outln (vty, "%% Argument is malformed.");
 +          vty_out (vty, "%% Argument is malformed.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    return CMD_SUCCESS;
@@@ -176,11 -176,11 +176,11 @@@ eigrp_route_match_delete (struct vty *v
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% Can't find rule.");
 +          vty_out (vty, "%% Can't find rule.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
 -          vty_outln (vty, "%% Argument is malformed.");
 +          vty_out (vty, "%% Argument is malformed.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    return CMD_SUCCESS;
@@@ -199,16 -199,16 +199,16 @@@ eigrp_route_set_add (struct vty *vty, s
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% Can't find rule.");
 +          vty_out (vty, "%% Can't find rule.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
            /* rip, ripng and other protocols share the set metric command
               but only values from 0 to 16 are valid for rip and ripng
               if metric is out of range for rip and ripng, it is not for
               other protocols. Do not return an error */
            if (strcmp(command, "metric")) {
 -            vty_outln (vty, "%% Argument is malformed.");
 +            vty_out (vty, "%% Argument is malformed.\n");
-             return CMD_WARNING;
+             return CMD_WARNING_CONFIG_FAILED;
            }
          }
      }
@@@ -228,11 -228,11 +228,11 @@@ eigrp_route_set_delete (struct vty *vty
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% Can't find rule.");
 +          vty_out (vty, "%% Can't find rule.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
 -          vty_outln (vty, "%% Argument is malformed.");
 +          vty_out (vty, "%% Argument is malformed.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    return CMD_SUCCESS;
@@@ -1124,8 -1124,8 +1124,8 @@@ DEFUN (set_ip_nexthop
    ret = str2sockunion (argv[0], &su);
    if (ret < 0)
      {
 -      vty_outln (vty, "%% Malformed next-hop address");
 +      vty_out (vty, "%% Malformed next-hop address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return eigrp_route_set_add (vty, vty->index, "ip next-hop", argv[0]);
index 5fceb85146e0c85b322517fe43c9041a26b299ea,5b48ab79b3ad293e035a4a7ccca191ef329fa352..49fb729ca5ffc056f0e8da0558dd3dd427617b0d
@@@ -235,8 -235,8 +235,8 @@@ DEFUN (no_router_eigrp
    eigrp = eigrp_lookup ();
    if (eigrp->AS != atoi (argv[3]->arg))
      {
 -      vty_outln (vty,"%% Attempting to deconfigure non-existent AS");
 +      vty_out (vty,"%% Attempting to deconfigure non-existent AS\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    eigrp_finish_final (eigrp);
@@@ -393,8 -393,8 +393,8 @@@ DEFUN (eigrp_network
  
    if (ret == 0)
      {
 -      vty_outln (vty, "There is already same network statement.");
 +      vty_out (vty, "There is already same network statement.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -417,8 -417,8 +417,8 @@@ DEFUN (no_eigrp_network
  
    if (ret == 0)
    {
 -    vty_outln (vty,"Can't find specified network configuration.");
 +    vty_out (vty,"Can't find specified network configuration.\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
index 9846686ef18d64efb7536251fe34226c6ad6e8e9,a646933bb6eee49a0488c7e0650adbcfcc2dcf88..b3f29fd203c2c3428d5e9dcd5025b46dfc5ab383
@@@ -600,8 -600,8 +600,8 @@@ DEFUN (isis_redistribute
  
    if ((area->is_type & level) != level)
      {
 -      vty_outln (vty, "Node is not a level-%d IS", level);
 +      vty_out (vty, "Node is not a level-%d IS\n", level);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    metric = 0xffffffff;
@@@ -702,8 -702,8 +702,8 @@@ DEFUN (isis_default_originate
  
    if ((area->is_type & level) != level)
      {
 -      vty_outln (vty, "Node is not a level-%d IS", level);
 +      vty_out (vty, "Node is not a level-%d IS\n", level);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argc > idx_always && strmatch (argv[idx_always]->text, "always"))
diff --cc isisd/isis_te.c
index e26bb6e46bb12040ecaddffd558d629a85902017,53b56186f4171ffd2e15e6a4ade9ef341069fccd..271545744ac784ae526662c6292caa20731c1c74
@@@ -1173,8 -1173,8 +1173,8 @@@ DEFUN (isis_mpls_te_router_addr
  
    if (! inet_aton (argv[idx_ipv4]->arg, &value))
      {
 -      vty_outln (vty, "Please specify Router-Addr by A.B.C.D");
 +      vty_out (vty, "Please specify Router-Addr by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    isisMplsTE.router_id.s_addr = value.s_addr;
index 784f29f0e56c6e21fd6fe1c1a2e3b3725badfa5d,9fc1cb110dceb73bbcf814d6ccc51a3fd3aa6213..157962dad368da7d716805200a02221300692c43
@@@ -92,8 -92,8 +92,8 @@@ DEFUN (ip_router_isis
  
      if (circuit->state != C_STATE_CONF && circuit->state != C_STATE_UP)
        {
 -        vty_outln (vty, "Couldn't bring up interface, please check log.");
 +        vty_out (vty, "Couldn't bring up interface, please check log.\n");
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        }
    }
  
Simple merge
index 0443d62ca888fd9b7b37a11f43ce481faf4bc646,2e52188a8578f0424796bf820d28cf177f931d91..4e900ca93e8a32c6d66992140799ee4c515daedd
@@@ -473,8 -473,8 +473,8 @@@ ldp_vty_disc_holdtime(struct vty *vty, 
  
        secs = strtol(seconds_str, &ep, 10);
        if (*ep != '\0' || secs < MIN_HOLDTIME || secs > MAX_HOLDTIME) {
 -              vty_outln (vty, "%% Invalid holdtime");
 +              vty_out (vty, "%% Invalid holdtime\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (hello_type_str[0] == 'h')
@@@ -568,8 -568,8 +568,8 @@@ ldp_vty_disc_interval(struct vty *vty, 
        secs = strtol(seconds_str, &ep, 10);
        if (*ep != '\0' || secs < MIN_HELLO_INTERVAL ||
            secs > MAX_HELLO_INTERVAL) {
 -              vty_outln (vty, "%% Invalid interval");
 +              vty_out (vty, "%% Invalid interval\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (hello_type_str[0] == 'h')
@@@ -686,8 -686,8 +686,8 @@@ ldp_vty_nbr_session_holdtime(struct vt
  
        if (inet_pton(AF_INET, lsr_id_str, &lsr_id) != 1 ||
            bad_addr_v4(lsr_id)) {
 -              vty_outln (vty, "%% Malformed address");
 +              vty_out (vty, "%% Malformed address\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        secs = strtol(seconds_str, &ep, 10);
@@@ -846,12 -846,12 +846,12 @@@ ldp_vty_neighbor_targeted(struct vty *v
  
        if (inet_pton(af, addr_str, &addr) != 1 ||
            bad_addr(af, &addr)) {
 -              vty_outln (vty, "%% Malformed address");
 +              vty_out (vty, "%% Malformed address\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
        if (af == AF_INET6 && IN6_IS_SCOPE_EMBED(&addr.v6)) {
 -              vty_outln (vty, "%% Address can not be link-local");
 +              vty_out (vty, "%% Address can not be link-local\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        tnbr = tnbr_find(vty_conf, af, &addr);
@@@ -1068,8 -1068,8 +1068,8 @@@ ldp_vty_neighbor_password(struct vty *v
  
        if (inet_pton(AF_INET, lsr_id_str, &lsr_id) != 1 ||
            bad_addr_v4(lsr_id)) {
 -              vty_outln (vty, "%% Malformed address");
 +              vty_out (vty, "%% Malformed address\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        nbrp = nbr_params_find(vty_conf, lsr_id);
@@@ -1114,8 -1114,8 +1114,8 @@@ ldp_vty_neighbor_ttl_security(struct vt
  
        if (inet_pton(AF_INET, lsr_id_str, &lsr_id) != 1 ||
            bad_addr_v4(lsr_id)) {
 -              vty_outln (vty, "%% Malformed address");
 +              vty_out (vty, "%% Malformed address\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (hops_str) {
@@@ -1226,8 -1226,8 +1226,8 @@@ ldp_vty_l2vpn_mtu(struct vty *vty, int 
  
        mtu = strtol(mtu_str, &ep, 10);
        if (*ep != '\0' || mtu < MIN_L2VPN_MTU || mtu > MAX_L2VPN_MTU) {
 -              vty_outln (vty, "%% Invalid MTU");
 +              vty_out (vty, "%% Invalid MTU\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (disable)
@@@ -1373,8 -1373,8 +1373,8 @@@ ldp_vty_l2vpn_pw_nbr_addr(struct vty *v
  
        if (ldp_get_address(addr_str, &af, &addr) == -1 ||
            bad_addr(af, &addr)) {
 -              vty_outln (vty, "%% Malformed address");
 +              vty_out (vty, "%% Malformed address\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (disable) {
@@@ -1400,8 -1400,8 +1400,8 @@@ ldp_vty_l2vpn_pw_nbr_id(struct vty *vty
  
        if (inet_pton(AF_INET, lsr_id_str, &lsr_id) != 1 ||
            bad_addr_v4(lsr_id)) {
 -              vty_outln (vty, "%% Malformed address");
 +              vty_out (vty, "%% Malformed address\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (disable)
@@@ -1423,8 -1423,8 +1423,8 @@@ ldp_vty_l2vpn_pw_pwid(struct vty *vty, 
  
        pwid = strtol(pwid_str, &ep, 10);
        if (*ep != '\0' || pwid < MIN_PWID_ID || pwid > MAX_PWID_ID) {
 -              vty_outln (vty, "%% Invalid pw-id");
 +              vty_out (vty, "%% Invalid pw-id\n");
-               return (CMD_WARNING);
+               return (CMD_WARNING_CONFIG_FAILED);
        }
  
        if (disable)
diff --cc lib/agentx.c
index a2e737fed0058ee5930c4527eba86d337ddda9e1,53e5f2bc53427918d3d690aa21e7523390c588b8..30c03e6cfbb35c019102816c0d7ba6d8898d194d
@@@ -196,8 -196,8 +196,8 @@@ DEFUN (no_agentx
         "SNMP AgentX protocol settings\n")
  {
    if (!agentx_enabled) return CMD_SUCCESS;
 -  vty_outln (vty, "SNMP AgentX support cannot be disabled once enabled");
 +  vty_out (vty, "SNMP AgentX support cannot be disabled once enabled\n");
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  void
diff --cc lib/command.c
index c9fbaf47be58c8f638cbb1bfb99a092689922755,bf36a43d3d0cb5d5cc1aa12b924064db6d7e4d2c..99e6b6e00425f28420b191f73d0d4144f4ab6ed4
@@@ -1149,8 -1149,8 +1149,8 @@@ DEFUN (config_terminal
      vty->node = CONFIG_NODE;
    else
      {
 -      vty_outln (vty, "VTY configuration is locked by other VTY");
 +      vty_out (vty, "VTY configuration is locked by other VTY\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
@@@ -1719,8 -1721,8 +1719,8 @@@ DEFUN (config_hostname
  
    if (!isalpha((int) word->arg[0]))
      {
 -      vty_outln (vty, "Please specify string starting with alphabet");
 +      vty_out (vty, "Please specify string starting with alphabet\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return cmd_hostname_set (word->arg);
@@@ -1759,9 -1761,9 +1759,9 @@@ DEFUN (config_password
  
    if (!isalnum (argv[idx_8]->arg[0]))
      {
 -      vty_outln (vty,
 -               "Please specify string starting with alphanumeric");
 +      vty_out (vty,
 +               "Please specify string starting with alphanumeric\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (host.password)
@@@ -1809,16 -1811,16 +1809,16 @@@ DEFUN (config_enable_password
          }
        else
          {
 -          vty_outln (vty, "Unknown encryption type.");
 +          vty_out (vty, "Unknown encryption type.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
    if (!isalnum (argv[idx_8]->arg[0]))
      {
 -      vty_outln (vty,
 -               "Please specify string starting with alphanumeric");
 +      vty_out (vty,
 +               "Please specify string starting with alphanumeric\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (host.enable)
index 691b67e83f7fb7a6433a553be21cbdb63c191468,02c888b69015515c15712e26fdf5f86529e20f61..34ccfb4c709dc303064a90d97e63cd094914e92b
@@@ -349,8 -349,8 +349,8 @@@ DEFUN (no_distribute_list
  
    if (! ret)
      {
 -      vty_outln (vty, "distribute list doesn't exist");
 +      vty_out (vty, "distribute list doesn't exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
diff --cc lib/filter.c
index 9967308f66fd8c1e3ccc3e993431adbb042ba667,d2c80fc2abfc62b7eb63ac7c80795ed411cc75d0..c1e922f5b29cae11bf9a992c22dad05fcf3d3203
@@@ -576,8 -576,8 +576,8 @@@ vty_access_list_remark_unset (struct vt
    access = access_list_lookup (afi, name);
    if (! access)
      {
 -      vty_outln (vty, "%% access-list %s doesn't exist",name);
 +      vty_out (vty, "%% access-list %s doesn't exist\n",name);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (access->remark)
@@@ -615,22 -615,22 +615,22 @@@ filter_set_cisco (struct vty *vty, cons
      type = FILTER_DENY;
    else
      {
 -      vty_outln (vty, "%% filter type must be permit or deny");
 +      vty_out (vty, "%% filter type must be permit or deny\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = inet_aton (addr_str, &addr);
    if (ret <= 0)
      {
 -      vty_outln (vty,"%%Inconsistent address and mask");
 +      vty_out (vty,"%%Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = inet_aton (addr_mask_str, &addr_mask);
    if (ret <= 0)
      {
 -      vty_outln (vty,"%%Inconsistent address and mask");
 +      vty_out (vty,"%%Inconsistent address and mask\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (extended)
        ret = inet_aton (mask_str, &mask);
        if (ret <= 0)
        {
 -        vty_outln (vty,"%%Inconsistent address and mask");
 +        vty_out (vty,"%%Inconsistent address and mask\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        ret = inet_aton (mask_mask_str, &mask_mask);
        if (ret <= 0)
        {
 -        vty_outln (vty,"%%Inconsistent address and mask");
 +        vty_out (vty,"%%Inconsistent address and mask\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
  
@@@ -1256,10 -1256,10 +1256,10 @@@ filter_set_zebra (struct vty *vty, cons
  
    if (strlen(name_str) > ACL_NAMSIZ)
      {
 -      vty_outln (vty, "%% ACL name %s is invalid: length exceeds "
 -                    "%d characters",
 +      vty_out (vty, "%% ACL name %s is invalid: length exceeds "
 +                    "%d characters\n",
                 name_str, ACL_NAMSIZ);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check of filter type. */
      type = FILTER_DENY;
    else
      {
 -      vty_outln (vty, "filter type must be [permit|deny]");
 +      vty_out (vty, "filter type must be [permit|deny]\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check string format of prefix and prefixlen. */
        ret = str2prefix_ipv4 (prefix_str, (struct prefix_ipv4 *)&p);
        if (ret <= 0)
        {
 -        vty_outln (vty,"IP address prefix/prefixlen is malformed");
 +        vty_out (vty,"IP address prefix/prefixlen is malformed\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
    else if (afi == AFI_IP6)
        ret = str2prefix_ipv6 (prefix_str, (struct prefix_ipv6 *) &p);
        if (ret <= 0)
        {
 -        vty_outln (vty,"IPv6 address prefix/prefixlen is malformed");
 +        vty_out (vty,"IPv6 address prefix/prefixlen is malformed\n");
-                  return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
    else
@@@ -1424,8 -1424,8 +1424,8 @@@ DEFUN (no_access_list_all
    access = access_list_lookup (AFI_IP, argv[idx_acl]->arg);
    if (access == NULL)
      {
 -      vty_outln (vty, "%% access-list %s doesn't exist",argv[idx_acl]->arg);
 +      vty_out (vty, "%% access-list %s doesn't exist\n",argv[idx_acl]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    master = access->master;
@@@ -1601,8 -1601,8 +1601,8 @@@ DEFUN (no_ipv6_access_list_all
    access = access_list_lookup (AFI_IP6, argv[idx_word]->arg);
    if (access == NULL)
      {
 -      vty_outln (vty, "%% access-list %s doesn't exist",argv[idx_word]->arg);
 +      vty_out (vty, "%% access-list %s doesn't exist\n",argv[idx_word]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    master = access->master;
index f6bc3e772c886537fa1a1de97c4da8c0bbcd9ca7,7962b5aef52f0a2dbd290ecfeeedf2e19b45916f..81c2ca5c30caefcd92e981b8a08cb465dd6b0f74
@@@ -465,11 -475,11 +475,11 @@@ DEFUN (grammar_access
    cnode = vector_slot (cmdvec, atoi (argv[2]->arg));
    if (!cnode)
      {
 -      vty_outln (vty, "%% no such node");
 +      vty_out (vty, "%% no such node\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
 -  vty_outln (vty, "node %d", (int)cnode->node);
 +  vty_out (vty, "node %d\n", (int)cnode->node);
    nodegraph = cnode->cmdgraph;
    return CMD_SUCCESS;
  }
diff --cc lib/hash.c
Simple merge
diff --cc lib/if.c
index 718ec7f016070e826c3ee9a43d0e3e62e810407d,cea05643e76ad7b6646b7e84a922b4be59599713..8b64aef9a72e608575417e60909f7d1a83ec3fc8
+++ b/lib/if.c
@@@ -690,10 -690,10 +690,10 @@@ DEFUN (interface
  
    if ((sl = strlen(ifname)) > INTERFACE_NAMSIZ)
      {
 -      vty_outln (vty, "%% Interface name %s is invalid: length exceeds "
 -                  "%d characters",
 +      vty_out (vty, "%% Interface name %s is invalid: length exceeds "
 +                  "%d characters\n",
               ifname, INTERFACE_NAMSIZ);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
  /*Pending: need proper vrf name based lookup/(possible creation of VRF)
  
    if (!ifp)
      {
 -      vty_outln (vty, "%% interface %s not in %s", ifname, vrfname);
 +      vty_out (vty, "%% interface %s not in %s\n", ifname, vrfname);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    VTY_PUSH_CONTEXT (INTERFACE_NODE, ifp);
  
@@@ -739,14 -739,15 +739,14 @@@ DEFUN_NOSH (no_interface
  
    if (ifp == NULL)
      {
 -      vty_out (vty, "%% Interface %s does not exist%s", ifname, VTYNL);
 +      vty_out (vty, "%% Interface %s does not exist\n", ifname);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE)) 
      {
 -      vty_out (vty, "%% Only inactive interfaces can be deleted%s",
 -            VTYNL);
 +      vty_out (vty, "%% Only inactive interfaces can be deleted\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if_delete(ifp);
diff --cc lib/if_rmap.c
index 49f9da52494a981c9598197f67b99c2f08633046,492c39c6ae608cc99029e34cf7500e2a3dafc331..a0c40d5afaa38fe4e9f14a0214ffde4e700438cd
@@@ -228,8 -228,8 +228,8 @@@ DEFUN (if_rmap
      type = IF_RMAP_OUT;
    else
      {
 -      vty_outln (vty, "route-map direction must be [in|out]");
 +      vty_out (vty, "route-map direction must be [in|out]\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if_rmap_set (argv[idx_ifname]->arg, type, argv[idx_rmap_name]->arg);
@@@ -259,15 -259,15 +259,15 @@@ DEFUN (no_if_rmap
      type = IF_RMAP_OUT;
    else
      {
 -      vty_outln (vty, "route-map direction must be [in|out]");
 +      vty_out (vty, "route-map direction must be [in|out]\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = if_rmap_unset (argv[idx_ifname]->arg, type, argv[idx_routemap_name]->arg);
    if (! ret)
      {
 -      vty_outln (vty, "route-map doesn't exist");
 +      vty_out (vty, "route-map doesn't exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
diff --cc lib/keychain.c
index 9b7b0877e4672c67be82a4caef95d4d9ca016476,ab2ad3262e5b1ab390e725ca4e36d9c8ba75e737..f768933b75fb5266049eb8079ef9147d490a78c5
@@@ -271,8 -271,8 +271,8 @@@ DEFUN (no_key_chain
  
    if (! keychain)
      {
 -      vty_outln (vty, "Can't find keychain %s", argv[idx_word]->arg);
 +      vty_out (vty, "Can't find keychain %s\n", argv[idx_word]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    keychain_delete (keychain);
@@@ -314,8 -314,8 +314,8 @@@ DEFUN (no_key
    key = key_lookup (keychain, index);
    if (! key)
      {
 -      vty_outln (vty, "Can't find key %d", index);
 +      vty_out (vty, "Can't find key %d\n", index);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    key_delete (keychain, key);
@@@ -477,21 -477,21 +477,21 @@@ key_lifetime_set (struct vty *vty, stru
    time_start = key_str2time (stime_str, sday_str, smonth_str, syear_str);
    if (time_start < 0)
      {
 -      vty_outln (vty, "Malformed time value");
 +      vty_out (vty, "Malformed time value\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    time_end = key_str2time (etime_str, eday_str, emonth_str, eyear_str);
  
    if (time_end < 0)
      {
 -      vty_outln (vty, "Malformed time value");
 +      vty_out (vty, "Malformed time value\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (time_end <= time_start)
      {
 -      vty_outln (vty, "Expire time is not later than start time");
 +      vty_out (vty, "Expire time is not later than start time\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    krange->start = time_start;
@@@ -512,8 -512,8 +512,8 @@@ key_lifetime_duration_set (struct vty *
    time_start = key_str2time (stime_str, sday_str, smonth_str, syear_str);
    if (time_start < 0)
      {
 -      vty_outln (vty, "Malformed time value");
 +      vty_out (vty, "Malformed time value\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    krange->start = time_start;
  
@@@ -534,8 -534,8 +534,8 @@@ key_lifetime_infinite_set (struct vty *
    time_start = key_str2time (stime_str, sday_str, smonth_str, syear_str);
    if (time_start < 0)
      {
 -      vty_outln (vty, "Malformed time value");
 +      vty_out (vty, "Malformed time value\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    krange->start = time_start;
  
diff --cc lib/ns.c
index 4e7192c149aeace91486c8739e147244e0217547,71f2b3ab6fc91e5fc3d3a8800eb6ece791ffc4d7..583fe95b79ef383af6e092c4f1805a1d56ce432b
+++ b/lib/ns.c
@@@ -324,9 -324,9 +324,9 @@@ DEFUN_NOSH (ns_netns
  
    if (ns->name && strcmp (ns->name, pathname) != 0)
      {
 -      vty_out (vty, "NS %u is already configured with NETNS %s%s",
 -               ns->ns_id, ns->name, VTYNL);
 +      vty_out (vty, "NS %u is already configured with NETNS %s\n",
 +               ns->ns_id, ns->name);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!ns->name)
  
    if (!ns_enable (ns))
      {
 -      vty_out (vty, "Can not associate NS %u with NETNS %s%s",
 -               ns->ns_id, ns->name, VTYNL);
 +      vty_out (vty, "Can not associate NS %u with NETNS %s\n",
 +               ns->ns_id, ns->name);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -371,8 -371,8 +371,8 @@@ DEFUN (no_ns_netns
  
    if (ns->name && strcmp (ns->name, pathname) != 0)
      {
 -      vty_outln (vty, "Incorrect NETNS file name");
 +      vty_out (vty, "Incorrect NETNS file name\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ns_disable (ns);
diff --cc lib/plist.c
index 0c04b6247e66d9029e96c78458143ddd31730847,88788b14b1950d31aefec648f7d2dd2a843362e0..96c60a4892f1fe0c27ff049949778f4f718acb7a
@@@ -882,9 -882,9 +882,9 @@@ prefix_entry_dup_check (struct prefix_l
  static int
  vty_invalid_prefix_range (struct vty *vty, const char *prefix)
  {
 -  vty_outln (vty, "%% Invalid prefix range for %s, make sure: len < ge-value <= le-value",
 +  vty_out (vty, "%% Invalid prefix range for %s, make sure: len < ge-value <= le-value\n",
             prefix);
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  static int
@@@ -920,8 -920,8 +920,8 @@@ vty_prefix_list_install (struct vty *vt
      type = PREFIX_DENY;
    else
      {
 -      vty_outln (vty, "%% prefix type must be permit or deny");
 +      vty_out (vty, "%% prefix type must be permit or deny\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* "any" is special token for matching any IPv4 addresses.  */
  
        if (ret <= 0)
        {
 -        vty_outln (vty, "%% Malformed IPv4 prefix");
 +        vty_out (vty, "%% Malformed IPv4 prefix\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        /* make a copy to verify prefix matches mask length */
  
        if (ret <= 0)
        {
 -        vty_outln (vty, "%% Malformed IPv6 prefix");
 +        vty_out (vty, "%% Malformed IPv6 prefix\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        /* make a copy to verify prefix matches mask length */
        break;
      case AFI_L2VPN:
      default:
 -      vty_outln (vty, "%% Unrecognized AFI (%d)", afi);
 +      vty_out (vty, "%% Unrecognized AFI (%d)\n", afi);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
        break;
      }
  
@@@ -1042,8 -1042,8 +1042,8 @@@ vty_prefix_list_uninstall (struct vty *
    plist = prefix_list_lookup (afi, name);
    if (! plist)
      {
 -      vty_outln (vty, "%% Can't find specified prefix-list");
 +      vty_out (vty, "%% Can't find specified prefix-list\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Only prefix-list name specified, delete the entire prefix-list. */
    /* We must have, at a minimum, both the type and prefix here */
    if ((typestr == NULL) || (prefix == NULL))
      {
 -      vty_outln (vty, "%% Both prefix and type required");
 +      vty_out (vty, "%% Both prefix and type required\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check sequence number. */
      type = PREFIX_DENY;
    else
      {
 -      vty_outln (vty, "%% prefix type must be permit or deny");
 +      vty_out (vty, "%% prefix type must be permit or deny\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* "any" is special token for matching any IPv4 addresses.  */
  
        if (ret <= 0)
        {
 -        vty_outln (vty, "%% Malformed IPv4 prefix");
 +        vty_out (vty, "%% Malformed IPv4 prefix\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
    else if (afi == AFI_IP6)
  
        if (ret <= 0)
        {
 -        vty_outln (vty, "%% Malformed IPv6 prefix");
 +        vty_out (vty, "%% Malformed IPv6 prefix\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
      }
  
  
    if (pentry == NULL)
      {
 -      vty_outln (vty, "%% Can't find specified prefix-list");
 +      vty_out (vty, "%% Can't find specified prefix-list\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Install new filter to the access_list. */
@@@ -1141,8 -1141,8 +1141,8 @@@ vty_prefix_list_desc_unset (struct vty 
    plist = prefix_list_lookup (afi, name);
    if (! plist)
      {
 -      vty_outln (vty, "%% Can't find specified prefix-list");
 +      vty_out (vty, "%% Can't find specified prefix-list\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (plist->desc)
diff --cc lib/routemap.c
index 5e5f804bf047429cbe6ce6f3b484a02eef8e874f,da8d48192cda91b2ab43ddd5030b95dfc20699bf..9ceaa1115e5e139647cc486360ff4a2cb29fa26e
@@@ -521,12 -521,12 +521,12 @@@ generic_match_add (struct vty *vty, str
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% [%s] Can't find rule.", frr_protonameinst);
 +          vty_out (vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
 -          vty_outln (vty, "%% [%s] Argument form is unsupported or malformed.",
 +          vty_out (vty, "%% [%s] Argument form is unsupported or malformed.\n",
                       frr_protonameinst);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -605,12 -605,12 +605,12 @@@ generic_set_add (struct vty *vty, struc
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% [%s] Can't find rule.", frr_protonameinst);
 +          vty_out (vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
 -          vty_outln (vty, "%% [%s] Argument form is unsupported or malformed.",
 +          vty_out (vty, "%% [%s] Argument form is unsupported or malformed.\n",
                       frr_protonameinst);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    return CMD_SUCCESS;
@@@ -628,12 -628,12 +628,12 @@@ generic_set_delete (struct vty *vty, st
        switch (ret)
          {
          case RMAP_RULE_MISSING:
 -          vty_outln (vty, "%% [%s] Can't find rule.", frr_protonameinst);
 +          vty_out (vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          case RMAP_COMPILE_ERROR:
 -          vty_outln (vty, "%% [%s] Argument form is unsupported or malformed.",
 +          vty_out (vty, "%% [%s] Argument form is unsupported or malformed.\n",
                       frr_protonameinst);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
    return CMD_SUCCESS;
@@@ -2359,15 -2359,15 +2359,15 @@@ DEFUN (set_ip_nexthop
    ret = str2sockunion (argv[idx_ipv4]->arg, &su);
    if (ret < 0)
      {
 -      vty_outln (vty, "%% Malformed nexthop address");
 +      vty_out (vty, "%% Malformed nexthop address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (su.sin.sin_addr.s_addr == 0 ||
        IPV4_CLASS_DE(su.sin.sin_addr.s_addr))
      {
 -      vty_outln (vty,
 -                 "%% nexthop address cannot be 0.0.0.0, multicast " "or reserved");
 +      vty_out (vty,
 +                 "%% nexthop address cannot be 0.0.0.0, multicast or reserved\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (rmap_match_set_hook.set_ip_nexthop)
@@@ -2416,13 -2416,13 +2416,13 @@@ DEFUN (set_ipv6_nexthop_local
    ret = inet_pton (AF_INET6, argv[idx_ipv6]->arg, &addr);
    if (!ret)
      {
 -      vty_outln (vty, "%% Malformed nexthop address");
 +      vty_out (vty, "%% Malformed nexthop address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!IN6_IS_ADDR_LINKLOCAL(&addr))
      {
 -      vty_outln (vty, "%% Invalid link-local nexthop address");
 +      vty_out (vty, "%% Invalid link-local nexthop address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (rmap_match_set_hook.set_ipv6_nexthop_local)
@@@ -2577,8 -2577,8 +2577,8 @@@ DEFUN (no_route_map_all
    map = route_map_lookup_by_name (mapname);
    if (map == NULL)
      {
 -      vty_outln (vty, "%% Could not find route-map %s", mapname);
 +      vty_out (vty, "%% Could not find route-map %s\n", mapname);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    route_map_delete (map);
@@@ -2612,17 -2612,17 +2612,17 @@@ DEFUN (no_route_map
    map = route_map_lookup_by_name (mapname);
    if (map == NULL)
      {
 -      vty_outln (vty, "%% Could not find route-map %s", mapname);
 +      vty_out (vty, "%% Could not find route-map %s\n", mapname);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Lookup route map index. */
    index = route_map_index_lookup (map, permit, pref);
    if (index == NULL)
      {
 -      vty_outln (vty, "%% Could not find route-map entry %s %s", 
 +      vty_out (vty, "%% Could not find route-map entry %s %s\n", 
               mapname, prefstr);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Delete index from route map. */
@@@ -2648,8 -2648,8 +2648,8 @@@ DEFUN (rmap_onmatch_next
        if (index->type == RMAP_DENY)
          {
          /* Under a deny clause, match means it's finished. No need to set next */
 -        vty_outln (vty,"on-match next not supported under route-map deny");
 +        vty_out (vty,"on-match next not supported under route-map deny\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        index->exitpolicy = RMAP_NEXT;
      }
@@@ -2689,8 -2689,8 +2689,8 @@@ DEFUN (rmap_onmatch_goto
        if (index->type == RMAP_DENY)
          {
          /* Under a deny clause, match means it's finished. No need to go anywhere */
 -        vty_outln (vty,"on-match goto not supported under route-map deny");
 +        vty_out (vty,"on-match goto not supported under route-map deny\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        if (num)
        if (d <= index->pref)
        {
          /* Can't allow you to do that, Dave */
 -        vty_outln (vty, "can't jump backwards in route-maps");
 +        vty_out (vty, "can't jump backwards in route-maps\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        else
        {
diff --cc lib/smux.c
index 64b406bd673e9edf0a2d12a82dcfaa2c0c73cd53,77092cdc21b880b360f3f3363cbe8343aec29e15..d7d99cc8a4d31378f456bb99231d531872aee3de
@@@ -1278,8 -1278,8 +1278,8 @@@ smux_peer_oid (struct vty *vty, const c
    ret = smux_str2oid (oid_str, oid, &oid_len);
    if (ret != 0)
      {
 -      vty_out (vty, "object ID malformed%s", VTYNL);
 +      vty_out (vty, "object ID malformed\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (smux_oid)
diff --cc lib/thread.c
Simple merge
diff --cc lib/vrf.c
index 03214736c285412a8a86aed731e12c295392918d,d1915149175b5797eeb9c95dc5a9532fc8384e3f..e13e8789896f95b71b59bb4e4649f4a18d4f30cb
+++ b/lib/vrf.c
@@@ -474,9 -474,9 +474,9 @@@ DEFUN_NOSH (vrf
    if (strlen(vrfname) > VRF_NAMSIZ)
      {
        vty_out (vty, "%% VRF name %s is invalid: length exceeds "
 -                    "%d characters%s",
 -               vrfname, VRF_NAMSIZ, VTYNL);
 +                    "%d characters\n",
 +               vrfname, VRF_NAMSIZ);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vrfp = vrf_get (VRF_UNKNOWN, vrfname);
@@@ -501,14 -501,15 +501,14 @@@ DEFUN_NOSH (no_vrf
  
    if (vrfp == NULL)
      {
 -      vty_out (vty, "%% VRF %s does not exist%s", vrfname, VTYNL);
 +      vty_out (vty, "%% VRF %s does not exist\n", vrfname);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (CHECK_FLAG (vrfp->status, VRF_ACTIVE))
      {
 -      vty_out (vty, "%% Only inactive VRFs can be deleted%s",
 -              VTYNL);
 +      vty_out (vty, "%% Only inactive VRFs can be deleted\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    vrf_delete(vrfp);
diff --cc lib/vty.c
index 3841704120e38461ebe9a98fff9c567aecef43e1,00a4e9bf713b82e541d38af1fec4ad78bd883f0e..80714597ac3b29ea1d3784dffad19db19c970471
+++ b/lib/vty.c
@@@ -2800,8 -2819,8 +2800,8 @@@ DEFUN (no_vty_access_class
    const char *accesslist = (argc == 3) ? argv[idx_word]->arg : NULL;
    if (! vty_accesslist_name || (argc == 3 && strcmp(vty_accesslist_name, accesslist)))
      {
 -      vty_outln (vty,"Access-class is not currently applied to vty");
 +      vty_out (vty,"Access-class is not currently applied to vty\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    XFREE(MTYPE_VTY, vty_accesslist_name);
@@@ -2843,8 -2862,8 +2843,8 @@@ DEFUN (no_vty_ipv6_access_class
    if (! vty_ipv6_accesslist_name ||
        (argc == 4 && strcmp(vty_ipv6_accesslist_name, accesslist)))
      {
 -      vty_outln (vty,"IPv6 access-class is not currently applied to vty");
 +      vty_out (vty,"IPv6 access-class is not currently applied to vty\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    XFREE(MTYPE_VTY, vty_ipv6_accesslist_name);
index 2c680d1082971a9bf2ee680a8b8119a1f18c6c40,5aeaad62fc7703973ef007d8084b29ed432d406c..af7fb0a50d521eebb098c3db79a8eca06dbb7fc6
@@@ -83,9 -83,9 +83,9 @@@ static int nhrp_vty_return(struct vty *
                snprintf(buf, sizeof(buf), "Unknown error %d", ret);
        }
  
 -      vty_outln (vty, "%% %s", str);
 +      vty_out (vty, "%% %s\n", str);
  
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;;
  }
  
  static int toggle_flag(
                return CMD_SUCCESS;
        }
  
 -      vty_outln (vty, "%% Invalid value %s", name);
 +      vty_out (vty, "%% Invalid value %s\n", name);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;;
  }
  
  #ifndef NO_DEBUG
index 102eb5e0e16e36fef0cbb6e981d0336833f73010,b63e8f5effa645a87ebcae6c2f50b7c1668f51a2..8e6408bf40b074cc9e890444ad847171da10211b
@@@ -968,8 -968,8 +968,8 @@@ DEFUN (ospf6_area_stub
  
    if (!ospf6_area_stub_set (ospf6, area))
      {
 -      vty_outln (vty,"First deconfigure all virtual link through this area");
 +      vty_out (vty,"First deconfigure all virtual link through this area\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf6_area_no_summary_unset (ospf6, area);
@@@ -993,8 -993,8 +993,8 @@@ DEFUN (ospf6_area_stub_no_summary
  
    if (!ospf6_area_stub_set (ospf6, area))
      {
 -      vty_outln (vty,"First deconfigure all virtual link through this area");
 +      vty_out (vty,"First deconfigure all virtual link through this area\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf6_area_no_summary_set (ospf6, area);
index 038ac53d6fdd7d3ba93b4b09753fe77418635e66,bc816c26a697004847fb43409c847d79fbe3ba1d..867d8bb646999300662ccaf1c712d2dd7afc691c
@@@ -1081,16 -1082,16 +1081,16 @@@ route_map_command_status (struct vty *v
    switch (ret)
      {
      case RMAP_RULE_MISSING:
 -      vty_out (vty, "OSPF6 Can't find rule.%s", VNL);
 +      vty_out (vty, "OSPF6 Can't find rule.\n");
        break;
      case RMAP_COMPILE_ERROR:
 -      vty_out (vty, "OSPF6 Argument is malformed.%s", VNL);
 +      vty_out (vty, "OSPF6 Argument is malformed.\n");
        break;
      default:
 -      vty_out (vty, "OSPF6 route-map add set failed.%s", VNL);
 +      vty_out (vty, "OSPF6 route-map add set failed.\n");
        break;
      }
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  /* add "set metric-type" */
index adfc148795f68f255935a0f590d74900624ac9ed,febc59327faf32b9ff2907b6b4f92df467386506..d647b94df6ae8372bfccf32942f3202fb94cc377
@@@ -1135,9 -1145,9 +1135,9 @@@ DEFUN (ipv6_ospf6_ifmtu
  
    if (ifp->mtu6 != 0 && ifp->mtu6 < ifmtu)
      {
 -      vty_out (vty, "%s's ospf6 ifmtu cannot go beyond physical mtu (%d)%s",
 -               ifp->name, ifp->mtu6, VNL);
 +      vty_out (vty, "%s's ospf6 ifmtu cannot go beyond physical mtu (%d)\n",
 +               ifp->name, ifp->mtu6);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (oi->ifmtu < ifmtu)
@@@ -1240,8 -1250,8 +1240,8 @@@ DEFUN (ipv6_ospf6_cost
  
    if (lcost > UINT32_MAX)
      {
 -      vty_out (vty, "Cost %ld is out of range%s", lcost, VNL);
 +      vty_out (vty, "Cost %ld is out of range\n", lcost);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    if (oi->cost == lcost)
@@@ -1297,8 -1307,8 +1297,8 @@@ DEFUN (auto_cost_reference_bandwidth
    refbw = strtol (argv[idx_number]->arg, NULL, 10);
    if (refbw < 1 || refbw > 4294967)
      {
 -      vty_outln (vty, "reference-bandwidth value is invalid");
 +      vty_out (vty, "reference-bandwidth value is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* If reference bandwidth is changed. */
index b609b4bb2052b09ce0277aeb7e05ba17a0380df8,a30bef87b3dec174b93387229d9efa997dbdad45..ddd2f3f1b4dbee6d1e27849edcb76415a83173f2
@@@ -682,8 -683,8 +682,8 @@@ ospf6_distance_set (struct vty *vty, st
    ret = str2prefix_ipv6 (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    distance = atoi (distance_str);
@@@ -730,15 -731,15 +730,15 @@@ ospf6_distance_unset (struct vty *vty, 
    ret = str2prefix_ipv6 (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rn = route_node_lookup (o->distance_table, (struct prefix *) &p);
    if (!rn)
      {
 -      vty_outln (vty, "Can't find specified prefix");
 +      vty_out (vty, "Cant't find specified prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    odistance = rn->info;
diff --cc ospfd/ospf_ri.c
index bb745d0c2e3dce4cae617cae4235b5cf55814313,21798300e4cea3c6f00e4cd5e72664bfcc1e4051..0f1ef35e407ec4d210ceb2ba5de511cff12f53f9
@@@ -1181,9 -1181,9 +1181,9 @@@ DEFUN (router_info
      {
        if (!inet_aton (area, &OspfRI.area_id))
          {
 -          vty_outln (vty, "%% specified Area ID %s is invalid",
 +          vty_out (vty, "%% specified Area ID %s is invalid\n",
                     area);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        scope = OSPF_OPAQUE_AREA_LSA;
      }
@@@ -1278,8 -1278,8 +1278,8 @@@ DEFUN (pce_address
  
    if (!inet_aton (argv[idx_ipv4]->arg, &value))
      {
 -      vty_outln (vty, "Please specify PCE Address by A.B.C.D");
 +      vty_out (vty, "Please specify PCE Address by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ntohs (pi->pce_address.header.type) == 0
@@@ -1330,8 -1330,8 +1330,8 @@@ DEFUN (pce_path_scope
  
    if (sscanf (argv[idx_bitpattern]->arg, "0x%x", &scope) != 1)
      {
 -      vty_outln (vty, "pce_path_scope: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "pce_path_scope: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ntohl (pi->pce_scope.header.type) == 0 || scope != pi->pce_scope.value)
@@@ -1384,8 -1384,8 +1384,8 @@@ DEFUN (pce_domain
  
    if (sscanf (argv[idx_number]->arg, "%d", &as) != 1)
      {
 -      vty_outln (vty, "pce_domain: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "pce_domain: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check if the domain is not already in the domain list */
@@@ -1421,8 -1421,8 +1421,8 @@@ DEFUN (no_pce_domain
  
    if (sscanf (argv[idx_number]->arg, "%d", &as) != 1)
      {
 -      vty_outln (vty, "no_pce_domain: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "no_pce_domain: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Unset corresponding PCE domain */
@@@ -1455,8 -1455,8 +1455,8 @@@ DEFUN (pce_neigbhor
  
    if (sscanf (argv[idx_number]->arg, "%d", &as) != 1)
      {
 -      vty_outln (vty, "pce_neighbor: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "pce_neighbor: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check if the domain is not already in the domain list */
@@@ -1492,8 -1492,8 +1492,8 @@@ DEFUN (no_pce_neighbor
  
    if (sscanf (argv[idx_number]->arg, "%d", &as) != 1)
      {
 -      vty_outln (vty, "no_pce_neighbor: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "no_pce_neighbor: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Unset corresponding PCE domain */
@@@ -1523,8 -1523,8 +1523,8 @@@ DEFUN (pce_cap_flag
  
    if (sscanf (argv[idx_bitpattern]->arg, "0x%x", &cap) != 1)
      {
 -      vty_outln (vty, "pce_cap_flag: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "pce_cap_flag: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ntohl (pce->pce_cap_flag.header.type) == 0
index 89fd7971f0341d59d590b8c1d28475f3cbfe161c,fa02561ab7eefc83a2f4890e782947b80e7fd29e..f6387b75902639f4f5c30813ed075c6b01d5219b
@@@ -150,8 -150,8 +150,8 @@@ DEFUN_NOSH (router_ospf
    ospf = ospf_lookup();
    if (!ospf)
      {
 -      vty_out (vty, "There isn't active ospf instance %s", VTYNL);
 +      vty_out (vty, "There isn't active ospf instance \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argc > 2)
@@@ -213,8 -213,8 +213,8 @@@ DEFUN (ospf_router_id
    ret = inet_aton (argv[idx_ipv4]->arg, &router_id);
    if (!ret)
      {
 -      vty_out (vty, "Please specify Router ID by A.B.C.D%s", VTYNL);
 +      vty_out (vty, "Please specify Router ID by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf->router_id_static = router_id;
@@@ -248,8 -248,8 +248,8 @@@ DEFUN_HIDDEN (ospf_router_id_old
    ret = inet_aton (argv[idx_ipv4]->arg, &router_id);
    if (!ret)
      {
 -      vty_out (vty, "Please specify Router ID by A.B.C.D%s", VTYNL);
 +      vty_out (vty, "Please specify Router ID by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf->router_id_static = router_id;
@@@ -389,8 -389,9 +389,8 @@@ DEFUN (ospf_passive_interface
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -458,8 -459,9 +458,8 @@@ DEFUN (no_ospf_passive_interface
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -508,14 -510,16 +508,14 @@@ DEFUN (ospf_network_area
  
    if (ospf->instance)
      {
 -      vty_out (vty, "The network command is not supported in multi-instance ospf%s",
 -             VTYNL);
 +      vty_out (vty, "The network command is not supported in multi-instance ospf\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ospf->if_ospf_cli_count > 0)
      {
 -      vty_out (vty, "Please remove all ip ospf area x.x.x.x commands first.%s",
 -               VTYNL);
 +      vty_out (vty, "Please remove all ip ospf area x.x.x.x commands first.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get network prefix and Area ID. */
    ret = ospf_network_set (ospf, &p, area_id, format);
    if (ret == 0)
      {
 -      vty_out (vty, "There is already same network statement.%s", VTYNL);
 +      vty_out (vty, "There is already same network statement.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -551,8 -555,9 +551,8 @@@ DEFUN (no_ospf_network_area
  
    if (ospf->instance)
      {
 -      vty_out (vty, "The network command is not supported in multi-instance ospf%s",
 -             VTYNL);
 +      vty_out (vty, "The network command is not supported in multi-instance ospf\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get network prefix and Area ID. */
    ret = ospf_network_unset (ospf, &p, area_id);
    if (ret == 0)
      {
 -      vty_out (vty, "Can't find specified network area configuration.%s",
 -             VTYNL);
 +      vty_out (vty, "Can't find specified network area configuration.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -866,9 -875,9 +866,9 @@@ ospf_vl_set_security (struct ospf_vl_da
        if (ospf_crypt_key_lookup (IF_DEF_PARAMS (ifp)->auth_crypt, vl_config->crypto_key_id) 
          != NULL)
        {
 -        vty_out (vty, "OSPF: Key %d already exists%s",
 -                 vl_config->crypto_key_id, VTYNL);
 +        vty_out (vty, "OSPF: Key %d already exists\n",
 +                 vl_config->crypto_key_id);
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        ck = ospf_crypt_key_new ();
        ck->key_id = vl_config->crypto_key_id;
        if (ospf_crypt_key_lookup (IF_DEF_PARAMS (ifp)->auth_crypt, 
                                 vl_config->crypto_key_id) == NULL)
        {
 -        vty_out (vty, "OSPF: Key %d does not exist%s", 
 -                 vl_config->crypto_key_id, VTYNL);
 +        vty_out (vty, "OSPF: Key %d does not exist\n", 
 +                 vl_config->crypto_key_id);
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        
        ospf_crypt_key_delete (IF_DEF_PARAMS (ifp)->auth_crypt, vl_config->crypto_key_id);
@@@ -1028,15 -1037,16 +1028,15 @@@ DEFUN (ospf_area_vlink
                            &vl_config.area_id_fmt);
    if (ret < 0)
      {
 -      vty_out (vty, "OSPF area ID is invalid%s", VTYNL);
 +      vty_out (vty, "OSPF area ID is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = inet_aton (argv[idx_ipv4]->arg, &vl_config.vl_peer);
    if (! ret)
      {
 -      vty_out (vty, "Please specify valid Router ID as a.b.c.d%s",
 -               VTYNL);
 +      vty_out (vty, "Please specify valid Router ID as a.b.c.d\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argc <=4)
@@@ -1147,22 -1157,23 +1147,22 @@@ DEFUN (no_ospf_area_vlink
    ret = str2area_id (argv[idx_ipv4_number]->arg, &vl_config.area_id, &format);
    if (ret < 0)
      {
 -      vty_out (vty, "OSPF area ID is invalid%s", VTYNL);
 +      vty_out (vty, "OSPF area ID is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    area = ospf_area_lookup_by_area_id (ospf, vl_config.area_id);
    if (!area)
      {
 -      vty_out (vty, "Area does not exist%s", VTYNL);
 +      vty_out (vty, "Area does not exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = inet_aton (argv[idx_ipv4]->arg, &vl_config.vl_peer);
    if (! ret)
      {
 -      vty_out (vty, "Please specify valid Router ID as a.b.c.d%s",
 -               VTYNL);
 +      vty_out (vty, "Please specify valid Router ID as a.b.c.d\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argc <=5)
@@@ -1246,15 -1257,15 +1246,15 @@@ DEFUN (ospf_area_vlink_intervals
    ret = str2area_id (area_id, &vl_config.area_id, &vl_config.area_id_fmt);
    if (ret < 0)
      {
 -      vty_out (vty, "OSPF area ID is invalid%s", VTYNL);
 +      vty_out (vty, "OSPF area ID is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = inet_aton (router_id, &vl_config.vl_peer);
    if (! ret)
      {
 -      vty_out (vty, "Please specify valid Router ID as a.b.c.d%s", VTYNL);
 +      vty_out (vty, "Please specify valid Router ID as a.b.c.d\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    for (int idx = 4; idx < argc; idx++)
@@@ -1292,15 -1303,15 +1292,15 @@@ DEFUN (no_ospf_area_vlink_intervals
    ret = str2area_id (area_id, &vl_config.area_id, &vl_config.area_id_fmt);
    if (ret < 0)
      {
 -      vty_out (vty, "OSPF area ID is invalid%s", VTYNL);
 +      vty_out (vty, "OSPF area ID is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ret = inet_aton (router_id, &vl_config.vl_peer);
    if (! ret)
      {
 -      vty_out (vty, "Please specify valid Router ID as a.b.c.d%s", VTYNL);
 +      vty_out (vty, "Please specify valid Router ID as a.b.c.d\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    for (int idx = 5; idx < argc; idx++)
@@@ -1409,8 -1421,9 +1409,8 @@@ DEFUN (ospf_area_stub
    ospf_area_display_format_set (ospf, ospf_area_get (ospf, area_id), format);
    if (ret == 0)
      {
 -      vty_out (vty, "First deconfigure all virtual link through this area%s",
 -             VTYNL);
 +      vty_out (vty, "First deconfigure all virtual link through this area\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf_area_no_summary_unset (ospf, area_id);
@@@ -1438,8 -1451,9 +1438,8 @@@ DEFUN (ospf_area_stub_no_summary
    ospf_area_display_format_set (ospf, ospf_area_get (ospf, area_id), format);
    if (ret == 0)
      {
 -      vty_out (vty, "%% Area cannot be stub as it contains a virtual link%s",
 -             VTYNL);
 +      vty_out (vty, "%% Area cannot be stub as it contains a virtual link\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf_area_no_summary_set (ospf, area_id);
@@@ -1504,8 -1518,9 +1504,8 @@@ ospf_area_nssa_cmd_handler (struct vty 
    ospf_area_display_format_set (ospf, ospf_area_get (ospf, area_id), format);
    if (ret == 0)
      {
 -      vty_out (vty, "%% Area cannot be nssa as it contains a virtual link%s",
 -             VTYNL);
 +      vty_out (vty, "%% Area cannot be nssa as it contains a virtual link\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argc > 3)
@@@ -1643,8 -1658,8 +1643,8 @@@ DEFUN (ospf_area_default_cost
  
    if (area->external_routing == OSPF_AREA_DEFAULT)
      {
 -      vty_out (vty, "The area is neither stub, nor NSSA%s", VTYNL);
 +      vty_out (vty, "The area is neither stub, nor NSSA\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    area->default_cost = cost;
@@@ -1686,8 -1701,8 +1686,8 @@@ DEFUN (no_ospf_area_default_cost
  
    if (area->external_routing == OSPF_AREA_DEFAULT)
      {
 -      vty_out (vty, "The area is neither stub, nor NSSA%s", VTYNL);
 +      vty_out (vty, "The area is neither stub, nor NSSA\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    area->default_cost = 1;
@@@ -2190,8 -2205,8 +2190,8 @@@ DEFUN (ospf_timers_min_ls_interval
  
    if (argc < 5)
      {
 -      vty_out (vty, "Insufficient arguments%s", VTYNL);
 +      vty_out (vty, "Insufficient arguments\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    interval = strtoul(argv[idx_number]->arg, NULL, 10);
@@@ -2232,8 -2247,8 +2232,8 @@@ DEFUN (ospf_timers_min_ls_arrival
  
    if (argc < 4)
      {
 -      vty_out (vty, "Insufficient arguments%s", VTYNL);
 +      vty_out (vty, "Insufficient arguments\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    arrival = strtoul(argv[idx_number]->arg, NULL, 10);
@@@ -2277,8 -2292,8 +2277,8 @@@ DEFUN (ospf_timers_throttle_spf
    
    if (argc < 6)
      {
 -      vty_out (vty, "Insufficient arguments%s", VTYNL);
 +      vty_out (vty, "Insufficient arguments\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    delay = strtoul(argv[idx_number]->arg, NULL, 10);
@@@ -2320,8 -2335,8 +2320,8 @@@ DEFUN (ospf_timers_lsa
  
    if (argc < 4)
      {
 -      vty_out (vty, "Insufficient number of arguments%s", VTYNL);
 +      vty_out (vty, "Insufficient number of arguments\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    minarrival = strtoul(argv[idx_number]->arg, NULL, 10);
@@@ -2534,8 -2549,8 +2534,8 @@@ DEFUN (ospf_auto_cost_reference_bandwid
    refbw = strtol (argv[idx_number]->arg, NULL, 10);
    if (refbw < 1 || refbw > 4294967)
      {
 -      vty_out (vty, "reference-bandwidth value is invalid%s", VTYNL);
 +      vty_out (vty, "reference-bandwidth value is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* If reference bandwidth is changed. */
@@@ -2593,8 -2608,8 +2593,8 @@@ DEFUN (ospf_write_multiplier
    write_oi_count = strtol (argv[idx_number]->arg, NULL, 10);
    if (write_oi_count < 1 || write_oi_count > 100)
      {
 -      vty_out (vty, "write-multiplier value is invalid%s", VTYNL);
 +      vty_out (vty, "write-multiplier value is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf->write_oi_count = write_oi_count;
@@@ -5492,8 -5555,9 +5492,8 @@@ DEFUN (ip_ospf_authentication_args
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
        return CMD_SUCCESS;
      }
  
 -  vty_out (vty, "You shouldn't get here!%s", VTYNL);
 +  vty_out (vty, "You shouldn't get here!\n");
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (ip_ospf_authentication,
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -5582,15 -5647,16 +5582,15 @@@ DEFUN (no_ip_ospf_authentication_args
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
        if (params == NULL)
        {
 -        vty_out (vty, "Ip Address specified is unknown%s", VTYNL);
 +        vty_out (vty, "Ip Address specified is unknown\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        params->auth_type = OSPF_AUTH_NOTSET;
        UNSET_IF_PARAM (params, auth_type);
        }
        else
        {
 -        vty_out (vty, "Unexpected input encountered%s", VTYNL);
 +        vty_out (vty, "Unexpected input encountered\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        /*
         * Here we have a case where the user has entered
@@@ -5671,15 -5737,16 +5671,15 @@@ DEFUN (no_ip_ospf_authentication
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
        if (params == NULL)
        {
 -        vty_out (vty, "Ip Address specified is unknown%s", VTYNL);
 +        vty_out (vty, "Ip Address specified is unknown\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params->auth_type = OSPF_AUTH_NOTSET;
@@@ -5750,8 -5817,9 +5750,8 @@@ DEFUN (ip_ospf_authentication_key
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -5795,8 -5863,9 +5795,8 @@@ DEFUN (no_ip_ospf_authentication_key
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -5856,8 -5925,9 +5856,8 @@@ DEFUN (ip_ospf_message_digest_key
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
    key_id = strtol (keyid, NULL, 10);
    if (ospf_crypt_key_lookup (params->auth_crypt, key_id) != NULL)
      {
 -      vty_out (vty, "OSPF: Key %d already exists%s", key_id, VTYNL);
 +      vty_out (vty, "OSPF: Key %d already exists\n", key_id);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ck = ospf_crypt_key_new ();
@@@ -5922,8 -5992,9 +5922,8 @@@ DEFUN (no_ip_ospf_message_digest_key
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
    ck = ospf_crypt_key_lookup (params->auth_crypt, key_id);
    if (ck == NULL)
      {
 -      vty_out (vty, "OSPF: Key %d does not exist%s", key_id, VTYNL);
 +      vty_out (vty, "OSPF: Key %d does not exist\n", key_id);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ospf_crypt_key_delete (params->auth_crypt, key_id);
@@@ -5989,8 -6060,9 +5989,8 @@@ DEFUN (ip_ospf_cost
      {
        if(!inet_aton(ifaddr, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -6043,8 -6115,9 +6043,8 @@@ DEFUN (no_ip_ospf_cost
      {
        if (!inet_aton(ifaddr, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -6114,8 -6187,9 +6114,8 @@@ ospf_vty_dead_interval_set (struct vty 
        ret = inet_aton(nbr_str, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
      }
    else
      {
 -      vty_out (vty, "Please specify dead-interval or hello-multiplier%s",
 -              VTYNL);
 +      vty_out (vty, "Please specify dead-interval or hello-multiplier\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
      
    SET_IF_PARAM (params, v_wait);
@@@ -6239,8 -6314,9 +6239,8 @@@ DEFUN (no_ip_ospf_dead_interval
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -6317,8 -6393,9 +6317,8 @@@ DEFUN (ip_ospf_hello_interval
      {
        if(!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -6363,8 -6440,9 +6363,8 @@@ DEFUN (no_ip_ospf_hello_interval
      {
        if(!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -6414,8 -6492,8 +6414,8 @@@ DEFUN (ip_ospf_network
  
    if (old_type == OSPF_IFTYPE_LOOPBACK)
      {
 -      vty_out (vty, "This is a loopback interface. Can't set network type.%s", VTYNL);
 +      vty_out (vty, "This is a loopback interface. Can't set network type.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (argv_find (argv, argc, "broadcast", &idx))
@@@ -6542,8 -6620,9 +6542,8 @@@ DEFUN (ip_ospf_priority
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -6603,8 -6682,9 +6603,8 @@@ DEFUN (no_ip_ospf_priority
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -6673,8 -6753,9 +6673,8 @@@ DEFUN (ip_ospf_retransmit_interval
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -6719,8 -6800,9 +6719,8 @@@ DEFUN (no_ip_ospf_retransmit_interval
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -6775,8 -6857,9 +6775,8 @@@ DEFUN (ip_ospf_transmit_delay
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_get_if_params (ifp, addr);
@@@ -6820,8 -6903,9 +6820,8 @@@ DEFUN (no_ip_ospf_transmit_delay
      {
        if (!inet_aton(argv[idx]->arg, &addr))
        {
 -        vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                 VTYNL);
 +        vty_out (vty, "Please specify interface address by A.B.C.D\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        params = ospf_lookup_if_params (ifp, addr);
@@@ -6897,21 -6981,23 +6897,21 @@@ DEFUN (ip_ospf_area
    ret = str2area_id (areaid, &area_id, &format);
    if (ret < 0)
      {
 -      vty_out (vty, "Please specify area by A.B.C.D|<0-4294967295>%s",
 -               VTYNL);
 +      vty_out (vty, "Please specify area by A.B.C.D|<0-4294967295>\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (memcmp (ifp->name, "VLINK", 5) == 0)
      {
 -      vty_out (vty, "Cannot enable OSPF on a virtual link.%s", VTYNL);
 +      vty_out (vty, "Cannot enable OSPF on a virtual link.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    params = IF_DEF_PARAMS (ifp);
-   if (OSPF_IF_PARAM_CONFIGURED(params, if_area))
+   if (OSPF_IF_PARAM_CONFIGURED(params, if_area) && !IPV4_ADDR_SAME(&params->if_area, &area_id))
      {
        vty_out (vty,
 -               "Must remove previous area config before changing ospf area %s",
 -               VTYNL);
 +               "Must remove previous area config before changing ospf area \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    // Check if we have an address arg and proccess it
      {
        if (rn->info != NULL)
          {
 -          vty_out (vty, "Please remove all network commands first.%s", VTYNL);
 +          vty_out (vty, "Please remove all network commands first.\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -6985,8 -7071,8 +6985,8 @@@ DEFUN (no_ip_ospf_area
  
    if (!OSPF_IF_PARAM_CONFIGURED(params, if_area))
      {
 -      vty_outln (vty, "Can't find specified interface area configuration.");
 +      vty_out (vty, "Can't find specified interface area configuration.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }  
  
    UNSET_IF_PARAM (params, if_area);
@@@ -7117,14 -7203,16 +7117,14 @@@ DEFUN (ospf_redistribute_instance_sourc
  
    if ((source == ZEBRA_ROUTE_OSPF) && !ospf->instance)
      {
 -      vty_out (vty, "Instance redistribution in non-instanced OSPF not allowed%s",
 -               VTYNL);
 +      vty_out (vty, "Instance redistribution in non-instanced OSPF not allowed\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if ((source == ZEBRA_ROUTE_OSPF) && (ospf->instance == instance))
      {
 -      vty_out (vty, "Same instance OSPF redistribution not allowed%s",
 -               VTYNL);
 +      vty_out (vty, "Same instance OSPF redistribution not allowed\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get metric value. */
@@@ -7180,14 -7268,16 +7180,14 @@@ DEFUN (no_ospf_redistribute_instance_so
  
    if ((source == ZEBRA_ROUTE_OSPF) && !ospf->instance)
      {
 -      vty_out (vty, "Instance redistribution in non-instanced OSPF not allowed%s",
 -               VTYNL);
 +      vty_out (vty, "Instance redistribution in non-instanced OSPF not allowed\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if ((source == ZEBRA_ROUTE_OSPF) && (ospf->instance == instance))
      {
 -      vty_out (vty, "Same instance OSPF redistribution not allowed%s",
 -               VTYNL);
 +      vty_out (vty, "Same instance OSPF redistribution not allowed\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    red = ospf_redist_lookup(ospf, source, instance);
@@@ -7548,8 -7638,9 +7548,8 @@@ DEFUN (ip_ospf_mtu_ignore
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
          {
 -          vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                  VTYNL);
 +          vty_out (vty, "Please specify interface address by A.B.C.D\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        params = ospf_get_if_params (ifp, addr);
        ospf_if_update_params (ifp, addr);
@@@ -7590,8 -7681,9 +7590,8 @@@ DEFUN (no_ip_ospf_mtu_ignore
        ret = inet_aton(argv[idx_ipv4]->arg, &addr);
        if (!ret)
          {
 -          vty_out (vty, "Please specify interface address by A.B.C.D%s",
 -                  VTYNL);
 +          vty_out (vty, "Please specify interface address by A.B.C.D\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        params = ospf_get_if_params (ifp, addr);
        ospf_if_update_params (ifp, addr);
index fa628f81ee7e15c8462642726f16d6d36dcfa658,5c60aae13cb81eb1753ba774809f7c03302eb551..e262bd8aa35be17311ce35fb8f184c73bec38ebb
@@@ -1445,8 -1445,8 +1445,8 @@@ ospf_distance_set (struct vty *vty, str
    ret = str2prefix_ipv4 (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    distance = atoi (distance_str);
@@@ -1493,15 -1493,15 +1493,15 @@@ ospf_distance_unset (struct vty *vty, s
    ret = str2prefix_ipv4 (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rn = route_node_lookup (ospf->distance_table, (struct prefix *) &p);
    if (!rn)
      {
 -      vty_outln (vty, "Can't find specified prefix");
 +      vty_out (vty, "Can't find specified prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    odistance = rn->info;
diff --cc pimd/pim_cmd.c
index 94f7d1534bbf91948b65b3893617c2e87df08972,48677100300b310341e8af82295ee925ed0dd05c..88c43104c66c47e57cc82e577a342a9f4c178afa
@@@ -3753,46 -3756,46 +3753,46 @@@ pim_rp_cmd_worker (struct vty *vty, con
  
    if (result == PIM_MALLOC_FAIL)
      {
 -      vty_outln (vty, "%% Out of memory");
 +      vty_out (vty, "%% Out of memory\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_GROUP_BAD_ADDRESS)
      {
 -      vty_outln (vty, "%% Bad group address specified: %s", group);
 +      vty_out (vty, "%% Bad group address specified: %s\n", group);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_RP_BAD_ADDRESS)
      {
 -      vty_outln (vty, "%% Bad RP address specified: %s", rp);
 +      vty_out (vty, "%% Bad RP address specified: %s\n", rp);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_RP_NO_PATH)
      {
 -      vty_outln (vty, "%% No Path to RP address specified: %s", rp);
 +      vty_out (vty, "%% No Path to RP address specified: %s\n", rp);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_GROUP_OVERLAP)
      {
 -      vty_outln (vty, "%% Group range specified cannot overlap");
 +      vty_out (vty, "%% Group range specified cannot overlap\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_GROUP_PFXLIST_OVERLAP)
      {
 -      vty_outln (vty,
 -                 "%% This group is already covered by a RP prefix-list");
 +      vty_out (vty,
 +                 "%% This group is already covered by a RP prefix-list\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_RP_PFXLIST_IN_USE)
      {
 -      vty_outln (vty,
 -                 "%% The same prefix-list cannot be applied to multiple RPs");
 +      vty_out (vty,
 +                 "%% The same prefix-list cannot be applied to multiple RPs\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -4039,20 -4042,20 +4039,20 @@@ pim_no_rp_cmd_worker (struct vty *vty, 
  
    if (result == PIM_GROUP_BAD_ADDRESS)
      {
 -      vty_outln (vty, "%% Bad group address specified: %s", group);
 +      vty_out (vty, "%% Bad group address specified: %s\n", group);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_RP_BAD_ADDRESS)
      {
 -      vty_outln (vty, "%% Bad RP address specified: %s", rp);
 +      vty_out (vty, "%% Bad RP address specified: %s\n", rp);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (result == PIM_RP_NOT_FOUND)
      {
 -      vty_outln (vty, "%% Unable to find specified RP");
 +      vty_out (vty, "%% Unable to find specified RP\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -4101,16 -4104,16 +4101,16 @@@ pim_ssm_cmd_worker (struct vty *vty, co
    switch (result)
      {
      case PIM_SSM_ERR_NO_VRF:
 -      vty_outln (vty, "%% VRF doesn't exist");
 +      vty_out (vty, "%% VRF doesn't exist\n");
        break;
      case PIM_SSM_ERR_DUP:
 -      vty_outln (vty, "%% duplicate config");
 +      vty_out (vty, "%% duplicate config\n");
        break;
      default:
 -      vty_outln (vty, "%% ssm range config failed");
 +      vty_out (vty, "%% ssm range config failed\n");
      }
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (ip_pim_ssm_prefix_list,
@@@ -4152,10 -4155,10 +4152,10 @@@ DEFUN (no_ip_pim_ssm_prefix_list_name
    if (ssm->plist_name && !strcmp(ssm->plist_name, argv[0]->arg))
      return pim_ssm_cmd_worker (vty, NULL);
  
 -  vty_outln (vty, "%% pim ssm prefix-list %s doesn't exist",
 +  vty_out (vty, "%% pim ssm prefix-list %s doesn't exist\n",
             argv[0]->arg);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  static void
@@@ -4274,16 -4277,16 +4274,16 @@@ DEFUN (ip_ssmpingd
  
    result = inet_pton(AF_INET, source_str, &source_addr);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad source address %s: errno=%d: %s\n",
            source_str, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_ssmpingd_start(source_addr);
    if (result) {
 -    vty_outln (vty, "%% Failure starting ssmpingd for source %s: %d",
 +    vty_out (vty, "%% Failure starting ssmpingd for source %s: %d\n",
            source_str, result);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
@@@ -4304,16 -4307,16 +4304,16 @@@ DEFUN (no_ip_ssmpingd
  
    result = inet_pton(AF_INET, source_str, &source_addr);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad source address %s: errno=%d: %s\n",
            source_str, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_ssmpingd_stop(source_addr);
    if (result) {
 -    vty_outln (vty, "%% Failure stopping ssmpingd for source %s: %d",
 +    vty_out (vty, "%% Failure stopping ssmpingd for source %s: %d\n",
            source_str, result);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
@@@ -4385,9 -4388,9 +4385,9 @@@ pim_cmd_igmp_start (struct vty *vty, st
        pim_ifp = pim_if_new(ifp, 1 /* igmp=true */, 0 /* pim=false */);
        if (!pim_ifp)
          {
 -          vty_outln (vty, "Could not enable IGMP on interface %s",
 +          vty_out (vty, "Could not enable IGMP on interface %s\n",
              ifp->name);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        need_startup = 1;
      }
@@@ -4470,25 -4473,25 +4470,25 @@@ DEFUN (interface_ip_igmp_join
    group_str = argv[idx_ipv4]->arg;
    result = inet_pton(AF_INET, group_str, &group_addr);
    if (result <= 0) {
 -    vty_outln (vty, "Bad group address %s: errno=%d: %s",
 +    vty_out (vty, "Bad group address %s: errno=%d: %s\n",
            group_str, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    /* Source address */
    source_str = argv[idx_ipv4_2]->arg;
    result = inet_pton(AF_INET, source_str, &source_addr);
    if (result <= 0) {
 -    vty_outln (vty, "Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "Bad source address %s: errno=%d: %s\n",
            source_str, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_if_igmp_join_add(ifp, group_addr, source_addr);
    if (result) {
 -    vty_outln (vty, "%% Failure joining IGMP group %s source %s on interface %s: %d",
 +    vty_out (vty, "%% Failure joining IGMP group %s source %s on interface %s: %d\n",
            group_str, source_str, ifp->name, result);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
@@@ -4517,25 -4520,25 +4517,25 @@@ DEFUN (interface_no_ip_igmp_join
    group_str = argv[idx_ipv4]->arg;
    result = inet_pton(AF_INET, group_str, &group_addr);
    if (result <= 0) {
 -    vty_outln (vty, "Bad group address %s: errno=%d: %s",
 +    vty_out (vty, "Bad group address %s: errno=%d: %s\n",
            group_str, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    /* Source address */
    source_str = argv[idx_ipv4_2]->arg;
    result = inet_pton(AF_INET, source_str, &source_addr);
    if (result <= 0) {
 -    vty_outln (vty, "Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "Bad source address %s: errno=%d: %s\n",
            source_str, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_if_igmp_join_del(ifp, group_addr, source_addr);
    if (result) {
 -    vty_outln (vty, "%% Failure leaving IGMP group %s source %s on interface %s: %d",
 +    vty_out (vty, "%% Failure leaving IGMP group %s source %s on interface %s: %d\n",
            group_str, source_str, ifp->name, result);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
@@@ -4701,23 -4704,23 +4701,23 @@@ DEFUN (interface_ip_igmp_query_interval
      already, but we verify them anyway for extra safety.
    */
    if (query_interval < IGMP_QUERY_INTERVAL_MIN) {
 -    vty_outln (vty, "General query interval %d lower than minimum %d",
 +    vty_out (vty, "General query interval %d lower than minimum %d\n",
            query_interval,
            IGMP_QUERY_INTERVAL_MIN);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
    if (query_interval > IGMP_QUERY_INTERVAL_MAX) {
 -    vty_outln (vty, "General query interval %d higher than maximum %d",
 +    vty_out (vty, "General query interval %d higher than maximum %d\n",
            query_interval,
            IGMP_QUERY_INTERVAL_MAX);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    if (query_interval_dsec <= pim_ifp->igmp_query_max_response_time_dsec) {
 -    vty_outln (vty,
 -          "Can't set general query interval %d dsec <= query max response time %d dsec.",
 +    vty_out (vty,
 +          "Can't set general query interval %d dsec <= query max response time %d dsec.\n",
            query_interval_dsec,pim_ifp->igmp_query_max_response_time_dsec);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    change_query_interval(pim_ifp, query_interval);
@@@ -4743,11 -4746,11 +4743,11 @@@ DEFUN (interface_no_ip_igmp_query_inter
    default_query_interval_dsec = IGMP_GENERAL_QUERY_INTERVAL * 10;
  
    if (default_query_interval_dsec <= pim_ifp->igmp_query_max_response_time_dsec) {
 -    vty_outln (vty,
 -          "Can't set default general query interval %d dsec <= query max response time %d dsec.",
 +    vty_out (vty,
 +          "Can't set default general query interval %d dsec <= query max response time %d dsec.\n",
            default_query_interval_dsec,
            pim_ifp->igmp_query_max_response_time_dsec);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    change_query_interval(pim_ifp, IGMP_GENERAL_QUERY_INTERVAL);
@@@ -4842,10 -4845,10 +4842,10 @@@ DEFUN (interface_ip_igmp_query_max_resp
    query_max_response_time = atoi(argv[3]->arg);
  
    if (query_max_response_time >= pim_ifp->igmp_default_query_interval * 10) {
 -    vty_outln (vty,
 -          "Can't set query max response time %d sec >= general query interval %d sec",
 +    vty_out (vty,
 +          "Can't set query max response time %d sec >= general query interval %d sec\n",
            query_max_response_time,pim_ifp->igmp_default_query_interval);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    change_query_max_response_time(pim_ifp, query_max_response_time);
@@@ -4902,10 -4905,10 +4902,10 @@@ DEFUN_HIDDEN (interface_ip_igmp_query_m
    default_query_interval_dsec = 10 * pim_ifp->igmp_default_query_interval;
  
    if (query_max_response_time_dsec >= default_query_interval_dsec) {
 -    vty_outln (vty,
 -          "Can't set query max response time %d dsec >= general query interval %d dsec",
 +    vty_out (vty,
 +          "Can't set query max response time %d dsec >= general query interval %d dsec\n",
            query_max_response_time_dsec,default_query_interval_dsec);
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    change_query_max_response_time(pim_ifp, query_max_response_time_dsec);
@@@ -4946,8 -4949,8 +4946,8 @@@ DEFUN (interface_ip_pim_drprio
    uint32_t old_dr_prio;
  
    if (!pim_ifp) {
 -    vty_outln (vty, "Please enable PIM on interface, first");
 +    vty_out (vty, "Please enable PIM on interface, first\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    old_dr_prio = pim_ifp->pim_dr_priority;
@@@ -4975,8 -4978,8 +4975,8 @@@ DEFUN (interface_no_ip_pim_drprio
    struct pim_interface *pim_ifp = ifp->info;
  
    if (!pim_ifp) {
 -    vty_outln (vty, "Pim not enabled on this interface");
 +    vty_out (vty, "Pim not enabled on this interface\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    if (pim_ifp->pim_dr_priority != PIM_DEFAULT_DR_PRIORITY) {
@@@ -5018,12 -5021,12 +5018,12 @@@ DEFUN_HIDDEN (interface_ip_pim_ssm
    VTY_DECLVAR_CONTEXT(interface, ifp);
  
    if (!pim_cmd_interface_add(ifp)) {
 -    vty_outln (vty, "Could not enable PIM SM on interface");
 +    vty_out (vty, "Could not enable PIM SM on interface\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
 -  vty_outln(vty, "WARN: Enabled PIM SM on interface; configure PIM SSM "
 -                 "range if needed");
 +  vty_out(vty, "WARN: Enabled PIM SM on interface; configure PIM SSM "
 +                 "range if needed\n");
    return CMD_SUCCESS;
  }
  
@@@ -5036,8 -5039,8 +5036,8 @@@ DEFUN (interface_ip_pim_sm
  {
    VTY_DECLVAR_CONTEXT(interface, ifp);
    if (!pim_cmd_interface_add(ifp)) {
 -    vty_outln (vty, "Could not enable PIM SM on interface");
 +    vty_out (vty, "Could not enable PIM SM on interface\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    pim_if_create_pimreg();
@@@ -5081,8 -5084,8 +5081,8 @@@ DEFUN_HIDDEN (interface_no_ip_pim_ssm
  {
    VTY_DECLVAR_CONTEXT(interface, ifp);
    if (!pim_cmd_interface_delete(ifp)) {
 -    vty_outln (vty, "Unable to delete interface information");
 +    vty_out (vty, "Unable to delete interface information\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
@@@ -5098,8 -5101,8 +5098,8 @@@ DEFUN (interface_no_ip_pim_sm
  {
    VTY_DECLVAR_CONTEXT(interface, ifp);
    if (!pim_cmd_interface_delete(ifp)) {
 -    vty_outln (vty, "Unable to delete interface information");
 +    vty_out (vty, "Unable to delete interface information\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    return CMD_SUCCESS;
@@@ -5126,24 -5129,24 +5126,24 @@@ DEFUN (interface_ip_mroute
     oifname = argv[idx_interface]->arg;
     oif = if_lookup_by_name(oifname, VRF_DEFAULT);
     if (!oif) {
 -     vty_outln (vty, "No such interface name %s",
 +     vty_out (vty, "No such interface name %s\n",
          oifname);
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     grp_str = argv[idx_ipv4]->arg;
     result = inet_pton(AF_INET, grp_str, &grp_addr);
     if (result <= 0) {
 -     vty_outln (vty, "Bad group address %s: errno=%d: %s",
 +     vty_out (vty, "Bad group address %s: errno=%d: %s\n",
          grp_str, errno, safe_strerror(errno));
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     src_addr.s_addr = INADDR_ANY;
  
     if (pim_static_add(iif, oif, grp_addr, src_addr)) {
 -      vty_outln (vty, "Failed to add route");
 +      vty_out (vty, "Failed to add route\n");
-       return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     return CMD_SUCCESS;
@@@ -5173,30 -5176,30 +5173,30 @@@ DEFUN (interface_ip_mroute_source
     oifname = argv[idx_interface]->arg;
     oif = if_lookup_by_name(oifname, VRF_DEFAULT);
     if (!oif) {
 -     vty_outln (vty, "No such interface name %s",
 +     vty_out (vty, "No such interface name %s\n",
          oifname);
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     grp_str = argv[idx_ipv4]->arg;
     result = inet_pton(AF_INET, grp_str, &grp_addr);
     if (result <= 0) {
 -     vty_outln (vty, "Bad group address %s: errno=%d: %s",
 +     vty_out (vty, "Bad group address %s: errno=%d: %s\n",
          grp_str, errno, safe_strerror(errno));
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     src_str = argv[idx_ipv4_2]->arg;
     result = inet_pton(AF_INET, src_str, &src_addr);
     if (result <= 0) {
 -     vty_outln (vty, "Bad source address %s: errno=%d: %s",
 +     vty_out (vty, "Bad source address %s: errno=%d: %s\n",
          src_str, errno, safe_strerror(errno));
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     if (pim_static_add(iif, oif, grp_addr, src_addr)) {
 -      vty_outln (vty, "Failed to add route");
 +      vty_out (vty, "Failed to add route\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
     }
  
     return CMD_SUCCESS;
@@@ -5224,24 -5227,24 +5224,24 @@@ DEFUN (interface_no_ip_mroute
     oifname = argv[idx_interface]->arg;
     oif = if_lookup_by_name(oifname, VRF_DEFAULT);
     if (!oif) {
 -     vty_outln (vty, "No such interface name %s",
 +     vty_out (vty, "No such interface name %s\n",
          oifname);
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     grp_str = argv[idx_ipv4]->arg;
     result = inet_pton(AF_INET, grp_str, &grp_addr);
     if (result <= 0) {
 -     vty_outln (vty, "Bad group address %s: errno=%d: %s",
 +     vty_out (vty, "Bad group address %s: errno=%d: %s\n",
          grp_str, errno, safe_strerror(errno));
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     src_addr.s_addr = INADDR_ANY;
  
     if (pim_static_del(iif, oif, grp_addr, src_addr)) {
 -      vty_outln (vty, "Failed to remove route");
 +      vty_out (vty, "Failed to remove route\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
     }
  
     return CMD_SUCCESS;
@@@ -5272,30 -5275,30 +5272,30 @@@ DEFUN (interface_no_ip_mroute_source
     oifname = argv[idx_interface]->arg;
     oif = if_lookup_by_name(oifname, VRF_DEFAULT);
     if (!oif) {
 -     vty_outln (vty, "No such interface name %s",
 +     vty_out (vty, "No such interface name %s\n",
          oifname);
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     grp_str = argv[idx_ipv4]->arg;
     result = inet_pton(AF_INET, grp_str, &grp_addr);
     if (result <= 0) {
 -     vty_outln (vty, "Bad group address %s: errno=%d: %s",
 +     vty_out (vty, "Bad group address %s: errno=%d: %s\n",
          grp_str, errno, safe_strerror(errno));
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     src_str = argv[idx_ipv4_2]->arg;
     result = inet_pton(AF_INET, src_str, &src_addr);
     if (result <= 0) {
 -     vty_outln (vty, "Bad source address %s: errno=%d: %s",
 +     vty_out (vty, "Bad source address %s: errno=%d: %s\n",
          src_str, errno, safe_strerror(errno));
-      return CMD_WARNING;
+      return CMD_WARNING_CONFIG_FAILED;
     }
  
     if (pim_static_del(iif, oif, grp_addr, src_addr)) {
 -      vty_outln (vty, "Failed to remove route");
 +      vty_out (vty, "Failed to remove route\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
     }
  
     return CMD_SUCCESS;
@@@ -5319,8 -5322,8 +5319,8 @@@ DEFUN (interface_ip_pim_hello
      {
        if (!pim_cmd_interface_add(ifp))
          {
 -          vty_outln (vty, "Could not enable PIM SM on interface");
 +          vty_out (vty, "Could not enable PIM SM on interface\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
@@@ -5349,8 -5352,8 +5349,8 @@@ DEFUN (interface_no_ip_pim_hello
    struct pim_interface *pim_ifp = ifp->info;
  
    if (!pim_ifp) {
 -    vty_outln (vty, "Pim not enabled on this interface");
 +    vty_out (vty, "Pim not enabled on this interface\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    pim_ifp->pim_hello_period     = PIM_DEFAULT_HELLO_PERIOD;
@@@ -5879,9 -5882,9 +5879,9 @@@ interface_pim_use_src_cmd_worker(struc
  
    result = inet_pton(AF_INET, source, &source_addr);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad source address %s: errno=%d: %s\n",
          source, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_update_source_set(ifp, source_addr);
      case PIM_SUCCESS:
        break;
     case PIM_IFACE_NOT_FOUND:
 -      vty_outln (vty, "Pim not enabled on this interface");
 +      vty_out (vty, "Pim not enabled on this interface\n");
        break;
      case PIM_UPDATE_SOURCE_DUP:
 -      vty_outln (vty, "%% Source already set to %s", source);
 +      vty_out (vty, "%% Source already set to %s\n", source);
        break;
      default:
 -      vty_outln (vty, "%% Source set failed");
 +      vty_out (vty, "%% Source set failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  DEFUN (interface_pim_use_source,
@@@ -6019,16 -6022,16 +6019,16 @@@ ip_msdp_peer_cmd_worker (struct vty *vt
  
    result = inet_pton(AF_INET, peer, &peer_addr);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad peer address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad peer address %s: errno=%d: %s\n",
          peer, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = inet_pton(AF_INET, local, &local_addr);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad source address %s: errno=%d: %s\n",
          local, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_msdp_peer_add(peer_addr, local_addr, "default", NULL/* mp_p */);
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_OOM:
 -      vty_outln (vty, "%% Out of memory");
 +      vty_out (vty, "%% Out of memory\n");
        break;
      case PIM_MSDP_ERR_PEER_EXISTS:
 -      vty_outln (vty, "%% Peer exists");
 +      vty_out (vty, "%% Peer exists\n");
        break;
      case PIM_MSDP_ERR_MAX_MESH_GROUPS:
 -      vty_outln (vty, "%% Only one mesh-group allowed currently");
 +      vty_out (vty, "%% Only one mesh-group allowed currently\n");
        break;
      default:
 -      vty_outln (vty, "%% peer add failed");
 +      vty_out (vty, "%% peer add failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  DEFUN_HIDDEN (ip_msdp_peer,
@@@ -6072,9 -6075,9 +6072,9 @@@ ip_no_msdp_peer_cmd_worker (struct vty 
  
    result = inet_pton(AF_INET, peer, &peer_addr);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad peer address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad peer address %s: errno=%d: %s\n",
          peer, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_msdp_peer_del(peer_addr);
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_NO_PEER:
 -      vty_outln (vty, "%% Peer does not exist");
 +      vty_out (vty, "%% Peer does not exist\n");
        break;
      default:
 -      vty_outln (vty, "%% peer del failed");
 +      vty_out (vty, "%% peer del failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  DEFUN_HIDDEN (no_ip_msdp_peer,
@@@ -6111,9 -6114,9 +6111,9 @@@ ip_msdp_mesh_group_member_cmd_worker(st
  
    result = inet_pton(AF_INET, mbr, &mbr_ip);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad member address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad member address %s: errno=%d: %s\n",
          mbr, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_msdp_mg_mbr_add(mg, mbr_ip);
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_OOM:
 -      vty_outln (vty, "%% Out of memory");
 +      vty_out (vty, "%% Out of memory\n");
        break;
      case PIM_MSDP_ERR_MG_MBR_EXISTS:
 -      vty_outln (vty, "%% mesh-group member exists");
 +      vty_out (vty, "%% mesh-group member exists\n");
        break;
      case PIM_MSDP_ERR_MAX_MESH_GROUPS:
 -      vty_outln (vty, "%% Only one mesh-group allowed currently");
 +      vty_out (vty, "%% Only one mesh-group allowed currently\n");
        break;
      default:
 -      vty_outln (vty, "%% member add failed");
 +      vty_out (vty, "%% member add failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  DEFUN (ip_msdp_mesh_group_member,
@@@ -6157,9 -6160,9 +6157,9 @@@ ip_no_msdp_mesh_group_member_cmd_worker
  
    result = inet_pton(AF_INET, mbr, &mbr_ip);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad member address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad member address %s: errno=%d: %s\n",
          mbr, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_msdp_mg_mbr_del(mg, mbr_ip);
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_NO_MG:
 -      vty_outln (vty, "%% mesh-group does not exist");
 +      vty_out (vty, "%% mesh-group does not exist\n");
        break;
      case PIM_MSDP_ERR_NO_MG_MBR:
 -      vty_outln (vty, "%% mesh-group member does not exist");
 +      vty_out (vty, "%% mesh-group member does not exist\n");
        break;
      default:
 -      vty_outln (vty, "%% mesh-group member del failed");
 +      vty_out (vty, "%% mesh-group member del failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  DEFUN (no_ip_msdp_mesh_group_member,
         no_ip_msdp_mesh_group_member_cmd,
@@@ -6200,9 -6203,9 +6200,9 @@@ ip_msdp_mesh_group_source_cmd_worker(st
  
    result = inet_pton(AF_INET, src, &src_ip);
    if (result <= 0) {
 -    vty_outln (vty, "%% Bad source address %s: errno=%d: %s",
 +    vty_out (vty, "%% Bad source address %s: errno=%d: %s\n",
          src, errno, safe_strerror(errno));
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    result = pim_msdp_mg_src_add(mg, src_ip);
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_OOM:
 -      vty_outln (vty, "%% Out of memory");
 +      vty_out (vty, "%% Out of memory\n");
        break;
      case PIM_MSDP_ERR_MAX_MESH_GROUPS:
 -      vty_outln (vty, "%% Only one mesh-group allowed currently");
 +      vty_out (vty, "%% Only one mesh-group allowed currently\n");
        break;
      default:
 -      vty_outln (vty, "%% source add failed");
 +      vty_out (vty, "%% source add failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  
@@@ -6246,13 -6249,13 +6246,13 @@@ ip_no_msdp_mesh_group_source_cmd_worker
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_NO_MG:
 -      vty_outln (vty, "%% mesh-group does not exist");
 +      vty_out (vty, "%% mesh-group does not exist\n");
        break;
      default:
 -      vty_outln (vty, "%% mesh-group source del failed");
 +      vty_out (vty, "%% mesh-group source del failed\n");
    }
  
-   return result?CMD_WARNING:CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  static int
@@@ -6265,13 -6268,13 +6265,13 @@@ ip_no_msdp_mesh_group_cmd_worker(struc
      case PIM_MSDP_ERR_NONE:
        break;
      case PIM_MSDP_ERR_NO_MG:
 -      vty_outln (vty, "%% mesh-group does not exist");
 +      vty_out (vty, "%% mesh-group does not exist\n");
        break;
      default:
 -      vty_outln (vty, "%% mesh-group source del failed");
 +      vty_out (vty, "%% mesh-group source del failed\n");
    }
  
-   return result ? CMD_WARNING : CMD_SUCCESS;
+   return result ? CMD_WARNING_CONFIG_FAILED : CMD_SUCCESS;
  }
  
  DEFUN (no_ip_msdp_mesh_group_source,
Simple merge
index bff8a4ce2c2f6b398bba37de15bf618f9e453bdf,d5570eac25d7116ff0c311733713f8d061bee7d0..357856e1e83754acf13ea761f21ee408a6348118
@@@ -1233,9 -1233,9 +1233,9 @@@ DEFUN (rip_network
  
    if (ret < 0)
      {
 -      vty_outln (vty, "There is a same network configuration %s",
 +      vty_out (vty, "There is a same network configuration %s\n",
                   argv[idx_ipv4_word]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -1263,9 -1263,9 +1263,9 @@@ DEFUN (no_rip_network
  
    if (ret < 0)
      {
 -      vty_outln (vty, "Can't find network configuration %s",
 +      vty_out (vty, "Can't find network configuration %s\n",
                   argv[idx_ipv4_word]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -1286,8 -1286,8 +1286,8 @@@ DEFUN (rip_neighbor
  
    if (ret <= 0)
      {
 -      vty_outln (vty, "Please specify address by A.B.C.D");
 +      vty_out (vty, "Please specify address by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rip_neighbor_add (&p);
@@@ -1311,8 -1311,8 +1311,8 @@@ DEFUN (no_rip_neighbor
  
    if (ret <= 0)
      {
 -      vty_outln (vty, "Please specify address by A.B.C.D");
 +      vty_out (vty, "Please specify address by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rip_neighbor_delete (&p);
@@@ -1534,8 -1534,8 +1534,8 @@@ DEFUN (ip_rip_authentication_mode
    {
      if (auth_type != RIP_AUTH_MD5)
      {
 -      vty_outln (vty, "auth length argument only valid for md5");
 +      vty_out (vty, "auth length argument only valid for md5\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
      if (strmatch ("rfc", authlen))
        ri->md5_auth_len = RIP_AUTH_MD5_SIZE;
@@@ -1591,15 -1591,15 +1591,15 @@@ DEFUN (ip_rip_authentication_string
  
    if (strlen (argv[idx_line]->arg) > 16)
      {
 -      vty_outln (vty,
 -                 "%% RIPv2 authentication string must be shorter than 16");
 +      vty_out (vty,
 +                 "%% RIPv2 authentication string must be shorter than 16\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ri->key_chain)
      {
 -      vty_outln (vty, "%% key-chain configuration exists");
 +      vty_out (vty, "%% key-chain configuration exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ri->auth_str)
@@@ -1651,8 -1651,8 +1651,8 @@@ DEFUN (ip_rip_authentication_key_chain
  
    if (ri->auth_str)
      {
 -      vty_outln (vty,"%% authentication string configuration exists");
 +      vty_out (vty,"%% authentication string configuration exists\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ri->key_chain)
index 97b405607e9a5124e7c47058d8150279b56e7cdf,3fb0daa86f99e78d95e729e4aa5aee4c8f909957..63f93d1391f8a345a3a1e7ad147d1eb2a512004e
@@@ -117,16 -117,16 +117,16 @@@ rip_offset_list_set (struct vty *vty, c
      direct = RIP_OFFSET_LIST_OUT;
    else
      {
 -      vty_outln (vty, "Invalid direction: %s", direct_str);
 +      vty_out (vty, "Invalid direction: %s\n", direct_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check metric. */
    metric = atoi (metric_str);
    if (metric < 0 || metric > 16)
      {
 -      vty_outln (vty, "Invalid metric: %s", metric_str);
 +      vty_out (vty, "Invalid metric: %s\n", metric_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get offset-list structure with interface name. */
@@@ -156,16 -156,16 +156,16 @@@ rip_offset_list_unset (struct vty *vty
      direct = RIP_OFFSET_LIST_OUT;
    else
      {
 -      vty_outln (vty, "Invalid direction: %s", direct_str);
 +      vty_out (vty, "Invalid direction: %s\n", direct_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check metric. */
    metric = atoi (metric_str);
    if (metric < 0 || metric > 16)
      {
 -      vty_outln (vty, "Invalid metric: %s", metric_str);
 +      vty_out (vty, "Invalid metric: %s\n", metric_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get offset-list structure with interface name. */
      }
    else
      {
 -      vty_outln (vty, "Can't find offset-list");
 +      vty_out (vty, "Can't find offset-list\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
index c7923df4a1ccc3a5a172f642200f01b548c15df9,c2418e1b5205c2fe13f40d428dfe21fdf625258d..dffa9db7cf033cc1d6f9e48e117016b63b87e214
@@@ -347,9 -347,9 +347,9 @@@ DEFUN (rip_redistribute_type
        }
      }
  
 -  vty_outln (vty, "Invalid type %s",argv[1]->arg);
 +  vty_out (vty, "Invalid type %s\n",argv[1]->arg);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (no_rip_redistribute_type,
          }
      }
  
 -  vty_outln (vty, "Invalid type %s",argv[2]->arg);
 +  vty_out (vty, "Invalid type %s\n",argv[2]->arg);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (rip_redistribute_type_routemap,
        }
    }
  
 -  vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +  vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (no_rip_redistribute_type_routemap,
        }
    }
  
 -  vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +  vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (rip_redistribute_type_metric,
        }
    }
  
 -  vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +  vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (no_rip_redistribute_type_metric,
        }
    }
  
 -  vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +  vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  DEFUN (rip_redistribute_type_metric_routemap,
        }
    }
  
 -  vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +  vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  
@@@ -557,9 -557,9 +557,9 @@@ DEFUN (no_rip_redistribute_type_metric_
        }
      }
  
 -  vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +  vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
  
-   return CMD_WARNING;
+   return CMD_WARNING_CONFIG_FAILED;
  }
  
  /* Default information originate. */
diff --cc ripd/ripd.c
index c93d16647c9d2cce0ac23bd73c28765cf9f02114,780efcc9442a62b6cf3823f1c1479cf712f242b7..8578dc3d215679c8c1d4cfd3da53ae75cf5b2ff0
@@@ -2847,8 -2847,8 +2847,8 @@@ DEFUN (rip_version
    version = atoi (argv[idx_number]->arg);
    if (version != RIPv1 && version != RIPv2)
      {
 -      vty_outln (vty, "invalid rip version %d",version);
 +      vty_out (vty, "invalid rip version %d\n",version);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    rip->version_send = version;
    rip->version_recv = version;
@@@ -2885,8 -2885,8 +2885,8 @@@ DEFUN (rip_route
    ret = str2prefix_ipv4 (argv[idx_ipv4_prefixlen]->arg, &p);
    if (ret < 0)
      {
 -      vty_outln (vty, "Malformed address");
 +      vty_out (vty, "Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask_ipv4 (&p);
  
  
    if (node->info)
      {
 -      vty_outln (vty, "There is already same static route.");
 +      vty_out (vty, "There is already same static route.\n");
        route_unlock_node (node);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    node->info = (void *)1;
@@@ -2922,8 -2922,8 +2922,8 @@@ DEFUN (no_rip_route
    ret = str2prefix_ipv4 (argv[idx_ipv4_prefixlen]->arg, &p);
    if (ret < 0)
      {
 -      vty_outln (vty, "Malformed address");
 +      vty_out (vty, "Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask_ipv4 (&p);
  
    node = route_node_lookup (rip->route, (struct prefix *) &p);
    if (! node)
      {
 -      vty_outln (vty, "Can't find route %s.",argv[idx_ipv4_prefixlen]->arg);
 +      vty_out (vty, "Can't find route %s.\n",argv[idx_ipv4_prefixlen]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rip_redistribute_delete (ZEBRA_ROUTE_RIP, RIP_ROUTE_STATIC, &p, 0);
@@@ -3014,22 -3014,22 +3014,22 @@@ DEFUN (rip_timers
    update = strtoul (argv[idx_number]->arg, &endptr, 10);
    if (update > RIP_TIMER_MAX || update < RIP_TIMER_MIN || *endptr != '\0')  
      {
 -      vty_outln (vty, "update timer value error");
 +      vty_out (vty, "update timer value error\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    timeout = strtoul (argv[idx_number_2]->arg, &endptr, 10);
    if (timeout > RIP_TIMER_MAX || timeout < RIP_TIMER_MIN || *endptr != '\0') 
      {
 -      vty_outln (vty, "timeout timer value error");
 +      vty_out (vty, "timeout timer value error\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    garbage = strtoul (argv[idx_number_3]->arg, &endptr, 10);
    if (garbage > RIP_TIMER_MAX || garbage < RIP_TIMER_MIN || *endptr != '\0') 
      {
 -      vty_outln (vty, "garbage timer value error");
 +      vty_out (vty, "garbage timer value error\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Set each timer value. */
@@@ -3102,8 -3102,8 +3102,8 @@@ rip_distance_set (struct vty *vty, cons
    ret = str2prefix_ipv4 (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    distance = atoi (distance_str);
@@@ -3148,15 -3148,15 +3148,15 @@@ rip_distance_unset (struct vty *vty, co
    ret = str2prefix_ipv4 (ip_str, &p);
    if (ret == 0)
      {
 -      vty_outln (vty, "Malformed prefix");
 +      vty_out (vty, "Malformed prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rn = route_node_lookup (rip_distance_table, (struct prefix *)&p);
    if (! rn)
      {
 -      vty_outln (vty, "Can't find specified prefix");
 +      vty_out (vty, "Can't find specified prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rdistance = rn->info;
@@@ -3386,8 -3386,8 +3386,8 @@@ DEFUN (rip_allow_ecmp
  {
    if (rip->ecmp)
      {
 -      vty_outln (vty, "ECMP is already enabled.");
 +      vty_out (vty, "ECMP is already enabled.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rip->ecmp = 1;
@@@ -3403,8 -3403,8 +3403,8 @@@ DEFUN (no_rip_allow_ecmp
  {
    if (!rip->ecmp)
      {
 -      vty_outln (vty, "ECMP is already disabled.");
 +      vty_out (vty, "ECMP is already disabled.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rip->ecmp = 0;
Simple merge
index 2abf2f9a9ff94b1c2f7e7f7bde51402aaf0b675b,8daad0803546831a45534c02861f4dcccfed6d4e..e4b45c54afbf7eb01410ea4af729cc2d183318cb
@@@ -960,9 -960,9 +960,9 @@@ DEFUN (ripng_network
  
    if (ret < 0)
      {
 -      vty_outln (vty, "There is same network configuration %s",
 +      vty_out (vty, "There is same network configuration %s\n",
                   argv[idx_if_or_addr]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -990,8 -990,8 +990,8 @@@ DEFUN (no_ripng_network
  
    if (ret < 0)
      {
 -      vty_outln (vty, "can't find network %s",argv[idx_if_or_addr]->arg);
 +      vty_out (vty, "can't find network %s\n",argv[idx_if_or_addr]->arg);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    return CMD_SUCCESS;
index e0ca0666bd7a18f0ad91e3614a85ca3f87550175,df460a00f9bab4561a5330ee129084710827524a..81e892d7d029078eb20bb3c3b1ed912e0de0235a
@@@ -125,16 -125,16 +125,16 @@@ ripng_offset_list_set (struct vty *vty
      direct = RIPNG_OFFSET_LIST_OUT;
    else
      {
 -      vty_outln (vty, "Invalid direction: %s", direct_str);
 +      vty_out (vty, "Invalid direction: %s\n", direct_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check metric. */
    metric = atoi (metric_str);
    if (metric < 0 || metric > 16)
      {
 -      vty_outln (vty, "Invalid metric: %s", metric_str);
 +      vty_out (vty, "Invalid metric: %s\n", metric_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get offset-list structure with interface name. */
@@@ -164,16 -164,16 +164,16 @@@ ripng_offset_list_unset (struct vty *vt
      direct = RIPNG_OFFSET_LIST_OUT;
    else
      {
 -      vty_outln (vty, "Invalid direction: %s", direct_str);
 +      vty_out (vty, "Invalid direction: %s\n", direct_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check metric. */
    metric = atoi (metric_str);
    if (metric < 0 || metric > 16)
      {
 -      vty_outln (vty, "Invalid metric: %s", metric_str);
 +      vty_out (vty, "Invalid metric: %s\n", metric_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Get offset-list structure with interface name. */
      }
    else
      {
 -      vty_outln (vty, "Can't find offset-list");
 +      vty_out (vty, "Can't find offset-list\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return CMD_SUCCESS;
  }
index 725336aff3c7ff88b997bfc47aa8d03418766afc,132422ed85e7f31676b30fae6366dffef4248a33..b49de9902e4fe0b54b6a367cd02a80c88d160d0e
@@@ -337,8 -337,8 +337,8 @@@ DEFUN (ripng_redistribute_type
  
    if (type < 0)
      {
 -      vty_outln (vty, "Invalid type %s", proto);
 +      vty_out (vty, "Invalid type %s\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, AFI_IP6, type, 0, VRF_DEFAULT);
@@@ -363,8 -363,8 +363,8 @@@ DEFUN (no_ripng_redistribute_type
  
    if (type < 0)
      {
 -      vty_outln (vty, "Invalid type %s", proto);
 +      vty_out (vty, "Invalid type %s\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng_redistribute_metric_unset (type);
@@@ -391,8 -391,8 +391,8 @@@ DEFUN (ripng_redistribute_type_metric
  
    if (type < 0)
      {
 -      vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +      vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng_redistribute_metric_set (type, metric);
@@@ -417,8 -417,8 +417,8 @@@ DEFUN (ripng_redistribute_type_routemap
  
    if (type < 0)
      {
 -      vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +      vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng_redistribute_routemap_set (type, argv[idx_word]->text);
@@@ -448,8 -448,8 +448,8 @@@ DEFUN (ripng_redistribute_type_metric_r
  
    if (type < 0)
      {
 -      vty_outln (vty, "Invalid type %s", argv[idx_protocol]->text);
 +      vty_out (vty, "Invalid type %s\n", argv[idx_protocol]->text);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng_redistribute_metric_set (type, metric);
diff --cc ripngd/ripngd.c
index 0b1faae03d6e9076058b1c128282ef6973ded0a8,15fce90c2e36c49616e37db672cce331d0a239dc..8b4c3e85072e09ea6a646c2dd64543b5e4487a93
@@@ -2258,17 -2260,17 +2258,17 @@@ DEFUN (ripng_route
    ret = str2prefix_ipv6 (argv[idx_ipv6addr]->arg, (struct prefix_ipv6 *)&p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "Malformed address");
 +      vty_out (vty, "Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask_ipv6 (&p);
  
    rp = route_node_get (ripng->route, (struct prefix *) &p);
    if (rp->info)
      {
 -      vty_outln (vty, "There is already same static route.");
 +      vty_out (vty, "There is already same static route.\n");
        route_unlock_node (rp);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    rp->info = (void *)1;
  
@@@ -2292,16 -2294,16 +2292,16 @@@ DEFUN (no_ripng_route
    ret = str2prefix_ipv6 (argv[idx_ipv6addr]->arg, (struct prefix_ipv6 *)&p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "Malformed address");
 +      vty_out (vty, "Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask_ipv6 (&p);
  
    rp = route_node_lookup (ripng->route, (struct prefix *) &p);
    if (! rp)
      {
 -      vty_outln (vty, "Can't find static route.");
 +      vty_out (vty, "Can't find static route.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng_redistribute_delete (ZEBRA_ROUTE_RIPNG, RIPNG_ROUTE_STATIC, &p, 0);
@@@ -2327,17 -2329,17 +2327,17 @@@ DEFUN (ripng_aggregate_address
    ret = str2prefix_ipv6 (argv[idx_ipv6_prefixlen]->arg, (struct prefix_ipv6 *)&p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "Malformed address");
 +      vty_out (vty, "Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check aggregate alredy exist or not. */
    node = route_node_get (ripng->aggregate, &p);
    if (node->info)
      {
 -      vty_outln (vty, "There is already same aggregate route.");
 +      vty_out (vty, "There is already same aggregate route.\n");
        route_unlock_node (node);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    node->info = (void *)1;
  
@@@ -2361,15 -2363,15 +2361,15 @@@ DEFUN (no_ripng_aggregate_address
    ret = str2prefix_ipv6 (argv[idx_ipv6_prefixlen]->arg, (struct prefix_ipv6 *) &p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "Malformed address");
 +      vty_out (vty, "Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    rn = route_node_lookup (ripng->aggregate, &p);
    if (! rn)
      {
 -      vty_outln (vty, "Can't find aggregate route.");
 +      vty_out (vty, "Can't find aggregate route.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    route_unlock_node (rn);
    rn->info = NULL;
@@@ -2423,8 -2425,8 +2423,8 @@@ DEFUN (ripng_update_timer
    update = strtoul (argv[0], &endptr, 10);
    if (update == ULONG_MAX || *endptr != '\0')
      {
 -      vty_out (vty, "update timer value error%s", VTYNL);
 +      vty_out (vty, "update timer value error\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng->update_time = update;
@@@ -2458,8 -2460,8 +2458,8 @@@ DEFUN (ripng_timeout_timer
    timeout = strtoul (argv[0], &endptr, 10);
    if (timeout == ULONG_MAX || *endptr != '\0')
      {
 -      vty_out (vty, "timeout timer value error%s", VTYNL);
 +      vty_out (vty, "timeout timer value error\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng->timeout_time = timeout;
@@@ -2491,8 -2493,8 +2491,8 @@@ DEFUN (ripng_garbage_timer
    garbage = strtoul (argv[0], &endptr, 10);
    if (garbage == ULONG_MAX || *endptr != '\0')
      {
 -      vty_out (vty, "garbage timer value error%s", VTYNL);
 +      vty_out (vty, "garbage timer value error\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng->garbage_time = garbage;
@@@ -2676,8 -2680,8 +2676,8 @@@ DEFUN (ripng_allow_ecmp
  {
    if (ripng->ecmp)
      {
 -      vty_outln (vty, "ECMP is already enabled.");
 +      vty_out (vty, "ECMP is already enabled.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng->ecmp = 1;
@@@ -2693,8 -2697,8 +2693,8 @@@ DEFUN (no_ripng_allow_ecmp
  {
    if (!ripng->ecmp)
      {
 -      vty_outln (vty, "ECMP is already disabled.");
 +      vty_out (vty, "ECMP is already disabled.\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ripng->ecmp = 0;
diff --cc vtysh/vtysh.c
Simple merge
diff --cc zebra/debug.c
Simple merge
index d7b2ebfe47d9262f56b8312d37fdb85f14f5a211,e3e2e2c675b8d35565f0970243f00e373b2d791c..39125a3920044f4fa0c5f85a632071c82404341f
@@@ -1479,8 -1480,8 +1479,8 @@@ DEFUN (multicast
        ret = if_set_flags (ifp, IFF_MULTICAST);
        if (ret < 0)
        {
 -        vty_outln (vty, "Can't set multicast flag");
 +        vty_out (vty, "Can't set multicast flag\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        if_refresh (ifp);
      }
@@@ -1505,8 -1506,8 +1505,8 @@@ DEFUN (no_multicast
        ret = if_unset_flags (ifp, IFF_MULTICAST);
        if (ret < 0)
        {
 -        vty_outln (vty, "Can't unset multicast flag");
 +        vty_out (vty, "Can't unset multicast flag\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        if_refresh (ifp);
      }
@@@ -1571,8 -1572,8 +1571,8 @@@ DEFUN (shutdown_if
          ret = if_unset_flags (ifp, IFF_UP);
          if (ret < 0)
            {
 -            vty_outln (vty, "Can't shutdown interface");
 +            vty_out (vty, "Can't shutdown interface\n");
-             return CMD_WARNING;
+             return CMD_WARNING_CONFIG_FAILED;
            }
          if_refresh (ifp);
      }
@@@ -1597,8 -1598,8 +1597,8 @@@ DEFUN (no_shutdown_if
        ret = if_set_flags (ifp, IFF_UP | IFF_RUNNING);
        if (ret < 0)
        {
 -        vty_outln (vty, "Can't up interface");
 +        vty_out (vty, "Can't up interface\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        if_refresh (ifp);
  
@@@ -1629,8 -1630,8 +1629,8 @@@ DEFUN (bandwidth_if
    /* bandwidth range is <1-100000> */
    if (bandwidth < 1 || bandwidth > 100000)
      {
 -      vty_outln (vty, "Bandwidth is invalid");
 +      vty_out (vty, "Bandwidth is invalid\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    
    ifp->bandwidth = bandwidth;
@@@ -1831,8 -1832,8 +1831,8 @@@ DEFUN (link_params_maxbw
  
    if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
      {
 -      vty_outln (vty, "link_params_maxbw: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "link_params_maxbw: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check that Maximum bandwidth is not lower than other bandwidth parameters */
        || (bw <= iflp->res_bw)
        || (bw <= iflp->use_bw))
      {
 -      vty_outln (vty,
 -               "Maximum Bandwidth could not be lower than others bandwidth");
 +      vty_out (vty,
 +               "Maximum Bandwidth could not be lower than others bandwidth\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Maximum Bandwidth if needed */
@@@ -1873,18 -1874,18 +1873,18 @@@ DEFUN (link_params_max_rsv_bw
  
    if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
      {
 -      vty_outln (vty, "link_params_max_rsv_bw: fscanf: %s",
 +      vty_out (vty, "link_params_max_rsv_bw: fscanf: %s\n",
                   safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check that bandwidth is not greater than maximum bandwidth parameter */
    if (bw > iflp->max_bw)
      {
 -      vty_outln (vty,
 -               "Maximum Reservable Bandwidth could not be greater than Maximum Bandwidth (%g)",
 +      vty_out (vty,
 +               "Maximum Reservable Bandwidth could not be greater than Maximum Bandwidth (%g)\n",
                 iflp->max_bw);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Maximum Reservable Bandwidth if needed */
@@@ -1910,25 -1911,25 +1910,25 @@@ DEFUN (link_params_unrsv_bw
    /* We don't have to consider about range check here. */
    if (sscanf (argv[idx_number]->arg, "%d", &priority) != 1)
      {
 -      vty_outln (vty, "link_params_unrsv_bw: fscanf: %s",
 +      vty_out (vty, "link_params_unrsv_bw: fscanf: %s\n",
                   safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
      {
 -      vty_outln (vty, "link_params_unrsv_bw: fscanf: %s",
 +      vty_out (vty, "link_params_unrsv_bw: fscanf: %s\n",
                   safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check that bandwidth is not greater than maximum bandwidth parameter */
    if (bw > iflp->max_bw)
      {
 -      vty_outln (vty,
 -               "UnReserved Bandwidth could not be greater than Maximum Bandwidth (%g)",
 +      vty_out (vty,
 +               "UnReserved Bandwidth could not be greater than Maximum Bandwidth (%g)\n",
                 iflp->max_bw);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Unreserved Bandwidth if needed */
@@@ -1950,9 -1951,9 +1950,9 @@@ DEFUN (link_params_admin_grp
  
    if (sscanf (argv[idx_bitpattern]->arg, "0x%lx", &value) != 1)
      {
 -      vty_outln (vty, "link_params_admin_grp: fscanf: %s",
 +      vty_out (vty, "link_params_admin_grp: fscanf: %s\n",
                 safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Administrative Group if needed */
@@@ -1994,8 -1995,8 +1994,8 @@@ DEFUN (link_params_inter_as
  
    if (!inet_aton (argv[idx_ipv4]->arg, &addr))
      {
 -      vty_outln (vty, "Please specify Router-Addr by A.B.C.D");
 +      vty_out (vty, "Please specify Router-Addr by A.B.C.D\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    as = strtoul(argv[idx_number]->arg, NULL, 10);
@@@ -2068,9 -2069,9 +2068,9 @@@ DEFUN (link_params_delay
      if (IS_PARAM_SET(iflp, LP_MM_DELAY)
          && (delay <= iflp->min_delay || delay >= iflp->max_delay))
        {
 -        vty_outln (vty, "Average delay should be comprise between Min (%d) and Max (%d) delay",
 +        vty_out (vty, "Average delay should be comprise between Min (%d) and Max (%d) delay\n",
                   iflp->min_delay, iflp->max_delay);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        }
      /* Update delay if value is not set or change */
      if (IS_PARAM_UNSET(iflp, LP_DELAY)|| iflp->av_delay != delay)
      /* Check new delays value coherency */
      if (delay <= low || delay >= high)
        {
 -        vty_outln (vty, "Average delay should be comprise between Min (%d) and Max (%d) delay",
 +        vty_out (vty, "Average delay should be comprise between Min (%d) and Max (%d) delay\n",
                   low, high);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        }
      /* Update Delays if needed */
      if (IS_PARAM_UNSET(iflp, LP_DELAY)
@@@ -2189,9 -2190,9 +2189,9 @@@ DEFUN (link_params_pkt_loss
  
    if (sscanf (argv[idx_percentage]->arg, "%g", &fval) != 1)
      {
 -      vty_outln (vty, "link_params_pkt_loss: fscanf: %s",
 +      vty_out (vty, "link_params_pkt_loss: fscanf: %s\n",
                   safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (fval > MAX_PKT_LOSS)
@@@ -2230,17 -2231,17 +2230,17 @@@ DEFUN (link_params_res_bw
  
    if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
      {
 -      vty_outln (vty, "link_params_res_bw: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "link_params_res_bw: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check that bandwidth is not greater than maximum bandwidth parameter */
    if (bw > iflp->max_bw)
      {
 -      vty_outln (vty,
 -               "Residual Bandwidth could not be greater than Maximum Bandwidth (%g)",
 +      vty_out (vty,
 +               "Residual Bandwidth could not be greater than Maximum Bandwidth (%g)\n",
                 iflp->max_bw);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Residual Bandwidth if needed */
@@@ -2276,17 -2277,17 +2276,17 @@@ DEFUN (link_params_ava_bw
  
    if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
      {
 -      vty_outln (vty, "link_params_ava_bw: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "link_params_ava_bw: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check that bandwidth is not greater than maximum bandwidth parameter */
    if (bw > iflp->max_bw)
      {
 -      vty_outln (vty,
 -               "Available Bandwidth could not be greater than Maximum Bandwidth (%g)",
 +      vty_out (vty,
 +               "Available Bandwidth could not be greater than Maximum Bandwidth (%g)\n",
                 iflp->max_bw);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Residual Bandwidth if needed */
@@@ -2322,17 -2323,17 +2322,17 @@@ DEFUN (link_params_use_bw
  
    if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
      {
 -      vty_outln (vty, "link_params_use_bw: fscanf: %s",safe_strerror(errno));
 +      vty_out (vty, "link_params_use_bw: fscanf: %s\n",safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check that bandwidth is not greater than maximum bandwidth parameter */
    if (bw > iflp->max_bw)
      {
 -      vty_outln (vty,
 -               "Utilised Bandwidth could not be greater than Maximum Bandwidth (%g)",
 +      vty_out (vty,
 +               "Utilised Bandwidth could not be greater than Maximum Bandwidth (%g)\n",
                 iflp->max_bw);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Update Utilized Bandwidth if needed */
@@@ -2371,14 -2372,14 +2371,14 @@@ ip_address_install (struct vty *vty, st
    ret = str2prefix_ipv4 (addr_str, &cp);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address ");
 +      vty_out (vty, "%% Malformed address \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ipv4_martian(&cp.prefix))
      {
 -      vty_outln (vty, "%% Invalid address");
 +      vty_out (vty, "%% Invalid address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ifc = connected_check (ifp, (struct prefix *) &cp);
        ret = if_set_prefix (ifp, ifc);
        if (ret < 0)
        {
 -        vty_outln (vty, "%% Can't set interface IP address: %s.", 
 +        vty_out (vty, "%% Can't set interface IP address: %s.\n", 
                   safe_strerror(errno));
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        SET_FLAG (ifc->conf, ZEBRA_IFC_QUEUED);
@@@ -2455,16 -2456,16 +2455,16 @@@ ip_address_uninstall (struct vty *vty, 
    ret = str2prefix_ipv4 (addr_str, &cp);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address ");
 +      vty_out (vty, "%% Malformed address \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check current interface address. */
    ifc = connected_check (ifp, (struct prefix *) &cp);
    if (! ifc)
      {
 -      vty_outln (vty, "%% Can't find address");
 +      vty_out (vty, "%% Can't find address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* This is not configured address. */
    ret = if_unset_prefix (ifp, ifc);
    if (ret < 0)
      {
 -      vty_outln (vty, "%% Can't unset interface IP address: %s.", 
 +      vty_out (vty, "%% Can't unset interface IP address: %s.\n", 
               safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    UNSET_FLAG (ifc->conf, ZEBRA_IFC_QUEUED);
    /* we will receive a kernel notification about this route being removed.
@@@ -2571,14 -2572,14 +2571,14 @@@ ipv6_address_install (struct vty *vty, 
    ret = str2prefix_ipv6 (addr_str, &cp);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address ");
 +      vty_out (vty, "%% Malformed address \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (ipv6_martian(&cp.prefix))
      {
 -      vty_outln (vty, "%% Invalid address");
 +      vty_out (vty, "%% Invalid address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ifc = connected_check (ifp, (struct prefix *) &cp);
  
        if (ret < 0)
        {
 -        vty_outln (vty, "%% Can't set interface IP address: %s.", 
 +        vty_out (vty, "%% Can't set interface IP address: %s.\n", 
                   safe_strerror(errno));
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        SET_FLAG (ifc->conf, ZEBRA_IFC_QUEUED);
@@@ -2664,16 -2665,16 +2664,16 @@@ ipv6_address_uninstall (struct vty *vty
    ret = str2prefix_ipv6 (addr_str, &cp);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address ");
 +      vty_out (vty, "%% Malformed address \n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Check current interface address. */
    ifc = connected_check (ifp, (struct prefix *) &cp);
    if (! ifc)
      {
 -      vty_outln (vty, "%% Can't find address");
 +      vty_out (vty, "%% Can't find address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* This is not configured address. */
    ret = if_prefix_delete_ipv6 (ifp, ifc);
    if (ret < 0)
      {
 -      vty_outln (vty, "%% Can't unset interface IP address: %s.", 
 +      vty_out (vty, "%% Can't unset interface IP address: %s.\n", 
               safe_strerror(errno));
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    UNSET_FLAG (ifc->conf, ZEBRA_IFC_QUEUED);
index 3c727ecb7259887bb92f73af3576ffef8bd5d1df,5fce704aff5f3daaba43ed01211732c8733ea332..323e94818066571757d1e61f84b36017e0cdeeae
@@@ -478,9 -478,9 +478,9 @@@ DEFUN (ip_irdp_minadvertinterval
        return CMD_SUCCESS;
    }
    else {
 -      vty_outln (vty, "%% MinAdvertInterval must be less than or equal to "
 -                      "MaxAdvertInterval");
 +      vty_out (vty, "%% MinAdvertInterval must be less than or equal to "
 +                      "MaxAdvertInterval\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
    }
  }
  
@@@ -505,9 -505,9 +505,9 @@@ DEFUN (ip_irdp_maxadvertinterval
        return CMD_SUCCESS;
    }
    else {
 -      vty_outln (vty, "%% MaxAdvertInterval must be greater than or equal to "
 -                      "MinAdvertInterval");
 +      vty_out (vty, "%% MaxAdvertInterval must be greater than or equal to "
 +                      "MinAdvertInterval\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
    }
  }
  
Simple merge
diff --cc zebra/rtadv.c
index c4fe4ac84ed10e4a556472c1601bebb57e4ddd15,a15a736db8b8a154a595bc4acbc9ef1be24e905d..589ecc94987e3f94d6a63b6a6999a1c430e232fd
@@@ -877,9 -877,9 +877,9 @@@ DEFUN (ipv6_nd_suppress_ra
    if (if_is_loopback (ifp) ||
        CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_VRF_LOOPBACK))
      {
 -      vty_outln (vty,
 -                 "Cannot configure IPv6 Router Advertisements on this  interface");
 +      vty_out (vty,
 +                 "Cannot configure IPv6 Router Advertisements on this  interface\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ipv6_nd_suppress_ra_set (ifp, RA_SUPPRESS);
@@@ -901,9 -901,9 +901,9 @@@ DEFUN (no_ipv6_nd_suppress_ra
    if (if_is_loopback (ifp) ||
        CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_VRF_LOOPBACK))
      {
 -      vty_outln (vty,
 -                 "Cannot configure IPv6 Router Advertisements on this interface");
 +      vty_out (vty,
 +                 "Cannot configure IPv6 Router Advertisements on this interface\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    ipv6_nd_suppress_ra_set (ifp, RA_ENABLE);
@@@ -931,9 -931,9 +931,9 @@@ DEFUN (ipv6_nd_ra_interval_msec
    interval = strtoul(argv[idx_number]->arg, NULL, 10);
    if ((zif->rtadv.AdvDefaultLifetime != -1 && interval > (unsigned)zif->rtadv.AdvDefaultLifetime * 1000))
    {
 -    vty_outln (vty,
 -               "This ra-interval would conflict with configured ra-lifetime!");
 +    vty_out (vty,
 +               "This ra-interval would conflict with configured ra-lifetime!\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    if (zif->rtadv.MaxRtrAdvInterval % 1000)
@@@ -968,9 -968,9 +968,9 @@@ DEFUN (ipv6_nd_ra_interval
    interval = strtoul(argv[idx_number]->arg, NULL, 10);
    if ((zif->rtadv.AdvDefaultLifetime != -1 && interval > (unsigned)zif->rtadv.AdvDefaultLifetime))
    {
 -    vty_outln (vty,
 -               "This ra-interval would conflict with configured ra-lifetime!");
 +    vty_out (vty,
 +               "This ra-interval would conflict with configured ra-lifetime!\n");
-     return CMD_WARNING;
+     return CMD_WARNING_CONFIG_FAILED;
    }
  
    if (zif->rtadv.MaxRtrAdvInterval % 1000)
@@@ -1036,9 -1036,9 +1036,9 @@@ DEFUN (ipv6_nd_ra_lifetime
     * MaxRtrAdvInterval and 9000 seconds. -- RFC4861, 6.2.1 */
    if ((lifetime != 0 && lifetime * 1000 < zif->rtadv.MaxRtrAdvInterval))
      {
 -      vty_outln (vty,
 -                 "This ra-lifetime would conflict with configured ra-interval");
 +      vty_out (vty,
 +                 "This ra-lifetime would conflict with configured ra-interval\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    zif->rtadv.AdvDefaultLifetime = lifetime;
@@@ -1333,8 -1333,8 +1333,8 @@@ DEFUN (ipv6_nd_prefix
    ret = str2prefix_ipv6 (prefix, &rp.prefix);
    if (!ret)
      {
 -      vty_outln (vty, "Malformed IPv6 prefix");
 +      vty_out (vty, "Malformed IPv6 prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask_ipv6 (&rp.prefix); /* RFC4861 4.6.2 */
    rp.AdvOnLinkFlag = !offlink;
      rp.AdvPreferredLifetime = strmatch (preflifetime, "infinite") ? UINT32_MAX : strtoll (preflifetime, NULL, 10);
      if (rp.AdvPreferredLifetime > rp.AdvValidLifetime)
        {
 -        vty_outln (vty, "Invalid preferred lifetime");
 +        vty_out (vty, "Invalid preferred lifetime\n");
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        }
    }
  
@@@ -1386,16 -1386,16 +1386,16 @@@ DEFUN (no_ipv6_nd_prefix
    ret = str2prefix_ipv6 (prefix, &rp.prefix);
    if (!ret)
      {
 -      vty_outln (vty, "Malformed IPv6 prefix");
 +      vty_out (vty, "Malformed IPv6 prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    apply_mask_ipv6 (&rp.prefix); /* RFC4861 4.6.2 */
  
    ret = rtadv_prefix_reset (zebra_if, &rp);
    if (!ret)
      {
 -      vty_outln (vty, "Non-existant IPv6 prefix");
 +      vty_out (vty, "Non-existant IPv6 prefix\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
index 41e3aac9a3ca12e002c621dcaae7b36548ab7b24,a7031f69290fbfbae7cba7f66102c8b98450719c..938e8ef7c9f954cb085a017dc99f5d86d3b98c73
@@@ -53,42 -53,42 +53,42 @@@ zebra_mpls_transit_lsp (struct vty *vty
  
    if (!mpls_enabled)
      {
 -      vty_outln (vty,"%% MPLS not turned on in kernel, ignoring command");
 +      vty_out (vty,"%% MPLS not turned on in kernel, ignoring command\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    zvrf = vrf_info_lookup(VRF_DEFAULT);
    if (!zvrf)
      {
 -      vty_outln (vty, "%% Default VRF does not exist");
 +      vty_out (vty, "%% Default VRF does not exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!inlabel_str)
      {
 -      vty_outln (vty, "%% No Label Information");
 +      vty_out (vty, "%% No Label Information\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    out_label = MPLS_IMP_NULL_LABEL; /* as initialization */
    label = atoi(inlabel_str);
    if (!IS_MPLS_UNRESERVED_LABEL(label))
      {
 -      vty_outln (vty, "%% Invalid label");
 +      vty_out (vty, "%% Invalid label\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (add_cmd)
      {
        if (!gate_str)
          {
 -          vty_outln (vty, "%% No Nexthop Information");
 +          vty_out (vty, "%% No Nexthop Information\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (!outlabel_str)
          {
 -          vty_outln (vty, "%% No Outgoing label Information");
 +          vty_out (vty, "%% No Outgoing label Information\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
      }
  
              gtype = NEXTHOP_TYPE_IPV4;
            else
              {
 -              vty_outln (vty, "%% Invalid nexthop");
 +              vty_out (vty, "%% Invalid nexthop\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
          }
      }
        if (!zebra_mpls_lsp_label_consistent (zvrf, in_label, out_label, gtype,
                                              &gate, 0))
          {
 -          vty_outln (vty,"%% Label value not consistent");
 +          vty_out (vty,"%% Label value not consistent\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  #endif /* HAVE_CUMULUS */
  
  
    if (ret)
      {
 -      vty_outln (vty, "%% LSP cannot be %s",
 +      vty_out (vty, "%% LSP cannot be %s\n",
                 add_cmd ? "added" : "deleted");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -218,24 -218,24 +218,24 @@@ zebra_mpls_bind (struct vty *vty, int a
    zvrf = vrf_info_lookup(VRF_DEFAULT);
    if (!zvrf)
      {
 -      vty_outln (vty, "%% Default VRF does not exist");
 +      vty_out (vty, "%% Default VRF does not exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    memset(&p, 0, sizeof(struct prefix));
    ret = str2prefix(prefix, &p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address");
 +      vty_out (vty, "%% Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (add_cmd)
      {
        if (!label_str)
          {
 -          vty_outln (vty, "%% No label binding specified");
 +          vty_out (vty, "%% No label binding specified\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        if (!strcmp(label_str, "implicit-null"))
            label = atoi(label_str);
            if (!IS_MPLS_UNRESERVED_LABEL(label))
              {
 -              vty_outln (vty, "%% Invalid label");
 +              vty_out (vty, "%% Invalid label\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
            if (zebra_mpls_label_already_bound (zvrf, label))
              {
 -              vty_outln (vty,"%% Label already bound to a FEC");
 +              vty_out (vty,"%% Label already bound to a FEC\n");
-               return CMD_WARNING;
+               return CMD_WARNING_CONFIG_FAILED;
              }
          }
  
  
    if (ret)
      {
 -      vty_outln (vty, "%% FEC to label binding cannot be %s",
 +      vty_out (vty, "%% FEC to label binding cannot be %s\n",
                 add_cmd ? "added" : "deleted");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -942,16 -942,16 +942,16 @@@ zebra_mpls_global_block (struct vty *vt
    zvrf = zebra_vrf_lookup_by_id(VRF_DEFAULT);
    if (!zvrf)
      {
 -      vty_outln (vty, "%% Default VRF does not exist");
 +      vty_out (vty, "%% Default VRF does not exist\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (add_cmd)
      {
        if (!start_label_str || !end_label_str)
          {
 -          vty_outln (vty, "%% Labels not specified");
 +          vty_out (vty, "%% Labels not specified\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        start_label = atoi(start_label_str);
        if (!IS_MPLS_UNRESERVED_LABEL(start_label) ||
            !IS_MPLS_UNRESERVED_LABEL(end_label))
          {
 -          vty_outln (vty, "%% Invalid label");
 +          vty_out (vty, "%% Invalid label\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (end_label < start_label)
          {
 -          vty_outln (vty,"%% End label is less than Start label");
 +          vty_out (vty,"%% End label is less than Start label\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
  
        ret = zebra_mpls_label_block_add (zvrf, start_label, end_label);
  
    if (ret)
      {
 -      vty_outln (vty, "%% Global label block could not be %s",
 +      vty_out (vty, "%% Global label block could not be %s\n",
                 add_cmd ? "added" : "deleted");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
index ab1643e50da395c61342121d59b20f711a403a21,9b4b52427e2df41deb5c10a712c798b9fcc1316d..a7b47165d97323c2545625c991ded7366e78d188
@@@ -73,11 -73,11 +73,11 @@@ zebra_route_match_add(struct vty *vty
        switch (ret)
        {
        case RMAP_RULE_MISSING:
 -        vty_outln (vty, "%% Zebra Can't find rule.");
 +        vty_out (vty, "%% Zebra Can't find rule.\n");
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        case RMAP_COMPILE_ERROR:
 -        vty_outln (vty, "%% Zebra Argument is malformed.");
 +        vty_out (vty, "%% Zebra Argument is malformed.\n");
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        }
      }
  
@@@ -121,11 -121,11 +121,11 @@@ zebra_route_match_delete (struct vty *v
        switch (ret)
        {
        case RMAP_RULE_MISSING:
 -        vty_outln (vty, "%% Zebra Can't find rule.");
 +        vty_out (vty, "%% Zebra Can't find rule.\n");
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        case RMAP_COMPILE_ERROR:
 -        vty_outln (vty, "%% Zebra Argument is malformed.");
 +        vty_out (vty, "%% Zebra Argument is malformed.\n");
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
        }
      }
  
@@@ -302,8 -302,8 +302,8 @@@ DEFUN (match_source_protocol
    i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    return zebra_route_match_add (vty, "source-protocol", proto, RMAP_EVENT_MATCH_ADDED);
  }
@@@ -350,8 -350,8 +350,8 @@@ DEFUN (set_src
      {
        if (inet_pton(AF_INET6, argv[idx_ip]->arg, &src.ipv6) != 1)
        {
 -        vty_outln (vty, "%% not a valid IPv4/v6 address");
 +        vty_out (vty, "%% not a valid IPv4/v6 address\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
  
        p.family = family = AF_INET6;
  
    if (!zebra_check_addr(&p))
      {
 -      vty_outln (vty, "%% not a valid source IPv4/v6 address");
 +      vty_out (vty, "%% not a valid source IPv4/v6 address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    RB_FOREACH (vrf, vrf_id_head, &vrfs_by_id)
  
    if (!pif)
      {
 -      vty_outln (vty, "%% not a local address");
 +      vty_out (vty, "%% not a local address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    VTY_DECLVAR_CONTEXT (route_map_index, index);
@@@ -459,8 -459,8 +459,8 @@@ DEFUN (ip_protocol
      i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (proto_rm[AFI_IP][i])
      {
@@@ -500,8 -500,8 +500,8 @@@ DEFUN (no_ip_protocol
  
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-      return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!proto_rm[AFI_IP][i])
@@@ -566,8 -566,8 +566,8 @@@ DEFUN (ipv6_protocol
      i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (proto_rm[AFI_IP6][i])
      {
@@@ -606,8 -606,8 +606,8 @@@ DEFUN (no_ipv6_protocol
      i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-      return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (!proto_rm[AFI_IP6][i])
      return CMD_SUCCESS;
@@@ -672,8 -672,8 +672,8 @@@ DEFUN (ip_protocol_nht_rmap
      i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (nht_rm[AFI_IP][i])
      {
@@@ -707,8 -707,8 +707,8 @@@ DEFUN (no_ip_protocol_nht_rmap
  
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (!nht_rm[AFI_IP][i])
@@@ -770,8 -770,8 +770,8 @@@ DEFUN (ipv6_protocol_nht_rmap
      i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
    if (nht_rm[AFI_IP6][i])
      XFREE (MTYPE_ROUTE_MAP_NAME, nht_rm[AFI_IP6][i]);
@@@ -801,14 -801,14 +801,14 @@@ DEFUN (no_ipv6_protocol_nht_rmap
      i = proto_name2num(proto);
    if (i < 0)
      {
 -      vty_outln (vty, "invalid protocol name \"%s\"", proto);
 +      vty_out (vty, "invalid protocol name \"%s\"\n", proto);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (nht_rm[AFI_IP6][i] && rmap && strcmp(rmap, nht_rm[AFI_IP6][i]))
      {
 -      vty_outln (vty, "invalid route-map \"%s\"", rmap);
 +      vty_out (vty, "invalid route-map \"%s\"\n", rmap);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (nht_rm[AFI_IP6][i])
index 6aaf7c86f971be53a86e707beaeb3ca26267aaa3,1b393830825392d9d5f19ddaaf4cf9a292460c94..0ed832fb55fa4e32369b3d718659b2d0460ad70d
@@@ -79,8 -79,8 +79,8 @@@ zebra_static_ipv4 (struct vty *vty, saf
    ret = str2prefix (dest_str, &p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address");
 +      vty_out (vty, "%% Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Cisco like mask notation. */
@@@ -89,8 -89,8 +89,8 @@@
        ret = inet_aton (mask_str, &mask);
        if (ret == 0)
          {
 -          vty_outln (vty, "%% Malformed address");
 +          vty_out (vty, "%% Malformed address\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        p.prefixlen = ip_masklen (mask);
      }
  
    if (!zvrf)
      {
 -      vty_outln (vty, "%% vrf %s is not defined", vrf_id_str);
 +      vty_out (vty, "%% vrf %s is not defined\n", vrf_id_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Labels */
      {
        if (!mpls_enabled)
        {
 -        vty_outln (vty,
 -                     "%% MPLS not turned on in kernel, ignoring command");
 +        vty_out (vty,
 +                     "%% MPLS not turned on in kernel, ignoring command\n");
-         return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
        }
        int rc = mpls_str2label (label_str, &snh_label.num_labels,
                                 snh_label.label);
      {
        if (flag_str)
          {
 -          vty_outln (vty, "%% can not have flag %s with Null0", flag_str);
 +          vty_out (vty, "%% can not have flag %s with Null0\n", flag_str);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (add_cmd)
          static_add_route (AFI_IP, safi, type, &p, NULL, NULL, ifindex, ifname,
          SET_FLAG (flag, ZEBRA_FLAG_BLACKHOLE);
          break;
        default:
 -        vty_outln (vty, "%% Malformed flag %s ", flag_str);
 +        vty_out (vty, "%% Malformed flag %s \n", flag_str);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
      }
    }
  
@@@ -286,8 -286,8 +286,8 @@@ DEFUN (ip_multicast_mode
      multicast_mode_ipv4_set (MCAST_MIX_PFXLEN);
    else
      {
 -      vty_outln (vty, "Invalid mode specified");
 +      vty_out (vty, "Invalid mode specified\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -1991,8 -1992,8 +1991,8 @@@ static_ipv6_func (struct vty *vty, int 
    ret = str2prefix (dest_str, &p);
    if (ret <= 0)
      {
 -      vty_outln (vty, "%% Malformed address");
 +      vty_out (vty, "%% Malformed address\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    if (src_str)
        ret = str2prefix (src_str, &src);
        if (ret <= 0 || src.family != AF_INET6)
          {
 -          vty_outln (vty, "%% Malformed source address");
 +          vty_out (vty, "%% Malformed source address\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        src_p = (struct prefix_ipv6*)&src;
      }
  
    if (!zvrf)
      {
 -      vty_outln (vty, "%% vrf %s is not defined", vrf_id_str);
 +      vty_out (vty, "%% vrf %s is not defined\n", vrf_id_str);
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    /* Labels */
      {
        if (!mpls_enabled)
          {
 -          vty_outln (vty,
 -                     "%% MPLS not turned on in kernel, ignoring command");
 +          vty_out (vty,
 +                     "%% MPLS not turned on in kernel, ignoring command\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        int rc = mpls_str2label (label_str, &snh_label.num_labels,
                                 snh_label.label);
      {
        if (flag_str)
          {
 -          vty_outln (vty, "%% can not have flag %s with Null0", flag_str);
 +          vty_out (vty, "%% can not have flag %s with Null0\n", flag_str);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        if (add_cmd)
          static_add_route (AFI_IP6, SAFI_UNICAST, type, &p, src_p, NULL, ifindex, ifname,
          SET_FLAG (flag, ZEBRA_FLAG_BLACKHOLE);
          break;
        default:
 -        vty_outln (vty, "%% Malformed flag %s ", flag_str);
 +        vty_out (vty, "%% Malformed flag %s \n", flag_str);
-         return CMD_WARNING;
+         return CMD_WARNING_CONFIG_FAILED;
      }
    }
  
           address. */
        if (ret != 1)
          {
 -          vty_outln (vty, "%% Malformed address");
 +          vty_out (vty, "%% Malformed address\n");
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        type = STATIC_IPV6_GATEWAY_IFINDEX;
        gate = &gate_addr;
        ifp = if_lookup_by_name (ifname, zvrf_id (zvrf));
        if (!ifp)
          {
 -          vty_outln (vty, "%% Malformed Interface name %s", ifname);
 +          vty_out (vty, "%% Malformed Interface name %s\n", ifname);
-           return CMD_WARNING;
+           return CMD_WARNING_CONFIG_FAILED;
          }
        ifindex = ifp->ifindex;
      }
diff --cc zebra/zserv.c
index d64ce815570a8ea44f9e96798a2f6203963e1442,17ec7dd8846327c8cb7e6475b17e044d7c1d7b75..e3c8ea0ddab4551ff1d917cdf70bc76d2e387fea
@@@ -2811,8 -2811,8 +2811,8 @@@ DEFUN (ip_forwarding
  
    if (ret == 0)
      {
 -      vty_outln (vty, "Can't turn on IP forwarding");
 +      vty_out (vty, "Can't turn on IP forwarding\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -2833,8 -2833,8 +2833,8 @@@ DEFUN (no_ip_forwarding
  
    if (ret != 0)
      {
 -      vty_outln (vty, "Can't turn off IP forwarding");
 +      vty_out (vty, "Can't turn off IP forwarding\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -2984,8 -2984,8 +2984,8 @@@ DEFUN (ipv6_forwarding
  
    if (ret == 0)
      {
 -      vty_outln (vty, "Can't turn on IPv6 forwarding");
 +      vty_out (vty, "Can't turn on IPv6 forwarding\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;
@@@ -3006,8 -3006,8 +3006,8 @@@ DEFUN (no_ipv6_forwarding
  
    if (ret != 0)
      {
 -      vty_outln (vty, "Can't turn off IPv6 forwarding");
 +      vty_out (vty, "Can't turn off IPv6 forwarding\n");
-       return CMD_WARNING;
+       return CMD_WARNING_CONFIG_FAILED;
      }
  
    return CMD_SUCCESS;