#include "netlink.h"
static struct cmd_node zebra_node = {
- .node = ZEBRA_NODE,
+ .node = ZEBRA_NODE,
.prompt = "%s(config-router)# ",
- .vtysh = 1,
+ .vtysh = 1,
};
static struct cmd_node nhrp_interface_node = {
- .node = INTERFACE_NODE,
+ .node = INTERFACE_NODE,
.prompt = "%s(config-if)# ",
- .vtysh = 1,
+ .vtysh = 1,
};
#define NHRP_DEBUG_FLAGS_CMD "<all|common|event|interface|kernel|route|vici>"
-#define NHRP_DEBUG_FLAGS_STR \
- "All messages\n" \
- "Common messages (default)\n" \
- "Event manager messages\n" \
- "Interface messages\n" \
- "Kernel messages\n" \
- "Route messages\n" \
+#define NHRP_DEBUG_FLAGS_STR \
+ "All messages\n" \
+ "Common messages (default)\n" \
+ "Event manager messages\n" \
+ "Interface messages\n" \
+ "Kernel messages\n" \
+ "Route messages\n" \
"VICI messages\n"
static const struct message debug_flags_desc[] = {
- { NHRP_DEBUG_ALL, "all" },
- { NHRP_DEBUG_COMMON, "common" },
- { NHRP_DEBUG_IF, "interface" },
- { NHRP_DEBUG_KERNEL, "kernel" },
- { NHRP_DEBUG_ROUTE, "route" },
- { NHRP_DEBUG_VICI, "vici" },
- { NHRP_DEBUG_EVENT, "event" },
- { 0 }
-};
+ {NHRP_DEBUG_ALL, "all"}, {NHRP_DEBUG_COMMON, "common"},
+ {NHRP_DEBUG_IF, "interface"}, {NHRP_DEBUG_KERNEL, "kernel"},
+ {NHRP_DEBUG_ROUTE, "route"}, {NHRP_DEBUG_VICI, "vici"},
+ {NHRP_DEBUG_EVENT, "event"}, {0}};
static const struct message interface_flags_desc[] = {
- { NHRP_IFF_SHORTCUT, "shortcut" },
- { NHRP_IFF_REDIRECT, "redirect" },
- { NHRP_IFF_REG_NO_UNIQUE, "registration no-unique" },
- { 0 }
-};
+ {NHRP_IFF_SHORTCUT, "shortcut"},
+ {NHRP_IFF_REDIRECT, "redirect"},
+ {NHRP_IFF_REG_NO_UNIQUE, "registration no-unique"},
+ {0}};
static int nhrp_vty_return(struct vty *vty, int ret)
{
- static const char * const errmsgs[] = {
- [NHRP_ERR_FAIL] = "Command failed",
- [NHRP_ERR_NO_MEMORY] = "Out of memory",
- [NHRP_ERR_UNSUPPORTED_INTERFACE] = "NHRP not supported on this interface",
- [NHRP_ERR_NHRP_NOT_ENABLED] = "NHRP not enabled (set 'nhrp network-id' first)",
- [NHRP_ERR_ENTRY_EXISTS] = "Entry exists already",
- [NHRP_ERR_ENTRY_NOT_FOUND] = "Entry not found",
- [NHRP_ERR_PROTOCOL_ADDRESS_MISMATCH] = "Protocol address family does not match command (ip/ipv6 mismatch)",
+ static const char *const errmsgs[] = {
+ [NHRP_ERR_FAIL] = "Command failed",
+ [NHRP_ERR_NO_MEMORY] = "Out of memory",
+ [NHRP_ERR_UNSUPPORTED_INTERFACE] =
+ "NHRP not supported on this interface",
+ [NHRP_ERR_NHRP_NOT_ENABLED] =
+ "NHRP not enabled (set 'nhrp network-id' first)",
+ [NHRP_ERR_ENTRY_EXISTS] = "Entry exists already",
+ [NHRP_ERR_ENTRY_NOT_FOUND] = "Entry not found",
+ [NHRP_ERR_PROTOCOL_ADDRESS_MISMATCH] =
+ "Protocol address family does not match command (ip/ipv6 mismatch)",
};
const char *str = NULL;
char buf[256];
if (ret == NHRP_OK)
return CMD_SUCCESS;
- if (ret > 0 && ret <= (int)ZEBRA_NUM_OF(errmsgs))
+ if (ret > 0 && ret <= NHRP_ERR_MAX)
if (errmsgs[ret])
str = errmsgs[ret];
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(
- struct vty *vty, const struct message *flag_desc,
- const char *name, int on_off, unsigned *flags)
+static int toggle_flag(struct vty *vty, const struct message *flag_desc,
+ const char *name, int on_off, unsigned *flags)
{
int i;
return CMD_SUCCESS;
}
- vty_outln (vty, "%% Invalid value %s", name);
- return CMD_WARNING;
+ vty_out(vty, "%% Invalid value %s\n", name);
+ return CMD_WARNING_CONFIG_FAILED;
+ ;
}
#ifndef NO_DEBUG
-DEFUN(show_debugging_nhrp, show_debugging_nhrp_cmd,
- "show debugging nhrp",
- SHOW_STR
- "Debugging information\n"
- "NHRP configuration\n")
+DEFUN_NOSH(show_debugging_nhrp, show_debugging_nhrp_cmd,
+ "show debugging [nhrp]",
+ SHOW_STR
+ "Debugging information\n"
+ "NHRP configuration\n")
{
int i;
- vty_outln (vty, "NHRP debugging status:");
+ vty_out(vty, "NHRP debugging status:\n");
for (i = 0; debug_flags_desc[i].str != NULL; i++) {
if (debug_flags_desc[i].key == NHRP_DEBUG_ALL)
if (!(debug_flags_desc[i].key & debug_flags))
continue;
- vty_outln (vty, " NHRP %s debugging is on",
+ vty_out(vty, " NHRP %s debugging is on\n",
debug_flags_desc[i].str);
}
"NHRP information\n"
NHRP_DEBUG_FLAGS_STR)
{
- return toggle_flag(vty, debug_flags_desc, argv[2]->text, 1, &debug_flags);
+ return toggle_flag(vty, debug_flags_desc, argv[2]->text, 1,
+ &debug_flags);
}
DEFUN(no_debug_nhrp, no_debug_nhrp_cmd,
"NHRP information\n"
NHRP_DEBUG_FLAGS_STR)
{
- return toggle_flag(vty, debug_flags_desc, argv[3]->text, 0, &debug_flags);
+ return toggle_flag(vty, debug_flags_desc, argv[3]->text, 0,
+ &debug_flags);
}
#endif /* NO_DEBUG */
{
#ifndef NO_DEBUG
if (debug_flags == NHRP_DEBUG_ALL) {
- vty_outln (vty, "debug nhrp all");
+ vty_out(vty, "debug nhrp all\n");
} else {
int i;
continue;
if (!(debug_flags & debug_flags_desc[i].key))
continue;
- vty_outln (vty, "debug nhrp %s",
- debug_flags_desc[i].str);
+ vty_out(vty, "debug nhrp %s\n",
+ debug_flags_desc[i].str);
}
}
- vty_outln (vty, "!");
+ vty_out(vty, "!\n");
#endif /* NO_DEBUG */
if (nhrp_event_socket_path) {
- vty_outln (vty, "nhrp event socket %s",
- nhrp_event_socket_path);
+ vty_out(vty, "nhrp event socket %s\n", nhrp_event_socket_path);
}
if (netlink_nflog_group) {
- vty_outln (vty, "nhrp nflog-group %d",
- netlink_nflog_group);
+ vty_out(vty, "nhrp nflog-group %d\n", netlink_nflog_group);
}
return 0;
static const char *afi_to_cmd(afi_t afi)
{
- if (afi == AFI_IP6) return "ipv6";
+ if (afi == AFI_IP6)
+ return "ipv6";
return "ip";
}
VTY_DECLVAR_CONTEXT(interface, ifp);
nhrp_interface_set_protection(ifp, argv[4]->arg,
- argc > 6 ? argv[6]->arg : NULL);
+ argc > 6 ? argv[6]->arg : NULL);
return CMD_SUCCESS;
}
struct nhrp_interface *nifp = ifp->info;
afi_t afi = cmd_to_afi(argv[0]);
- return toggle_flag(vty, interface_flags_desc, argv[2]->text, 1, &nifp->afi[afi].flags);
+ return toggle_flag(vty, interface_flags_desc, argv[2]->text, 1,
+ &nifp->afi[afi].flags);
}
DEFUN(if_no_nhrp_flags, if_no_nhrp_flags_cmd,
struct nhrp_interface *nifp = ifp->info;
afi_t afi = cmd_to_afi(argv[1]);
- return toggle_flag(vty, interface_flags_desc, argv[3]->text, 0, &nifp->afi[afi].flags);
+ return toggle_flag(vty, interface_flags_desc, argv[3]->text, 0,
+ &nifp->afi[afi].flags);
}
DEFUN(if_nhrp_reg_flags, if_nhrp_reg_flags_cmd,
afi_t afi = cmd_to_afi(argv[0]);
char name[256];
snprintf(name, sizeof(name), "registration %s", argv[3]->text);
- return toggle_flag(vty, interface_flags_desc, name, 1, &nifp->afi[afi].flags);
+ return toggle_flag(vty, interface_flags_desc, name, 1,
+ &nifp->afi[afi].flags);
}
DEFUN(if_no_nhrp_reg_flags, if_no_nhrp_reg_flags_cmd,
afi_t afi = cmd_to_afi(argv[1]);
char name[256];
snprintf(name, sizeof(name), "registration %s", argv[4]->text);
- return toggle_flag(vty, interface_flags_desc, name, 0, &nifp->afi[afi].flags);
+ return toggle_flag(vty, interface_flags_desc, name, 0,
+ &nifp->afi[afi].flags);
}
DEFUN(if_nhrp_holdtime, if_nhrp_holdtime_cmd,
NHRP_STR
"Configure NHRP advertised MTU\n"
"MTU value\n"
- "Advertise bound interface MTU similar to OpenNHRP")
+ "Advertise bound interface MTU similar to OpenNHRP\n")
{
VTY_DECLVAR_CONTEXT(interface, ifp);
struct nhrp_interface *nifp = ifp->info;
if (argv[3]->arg[0] == 'o') {
nifp->afi[AFI_IP].configured_mtu = -1;
} else {
- nifp->afi[AFI_IP].configured_mtu = strtoul(argv[3]->arg, NULL,
- 10);
+ nifp->afi[AFI_IP].configured_mtu =
+ strtoul(argv[3]->arg, NULL, 10);
}
nhrp_interface_update_mtu(ifp, AFI_IP);
NHRP_STR
"Configure NHRP advertised MTU\n"
"MTU value\n"
- "Advertise bound interface MTU similar to OpenNHRP")
+ "Advertise bound interface MTU similar to OpenNHRP\n")
{
VTY_DECLVAR_CONTEXT(interface, ifp);
struct nhrp_interface *nifp = ifp->info;
union sockunion proto_addr, nbma_addr;
struct nhrp_cache *c;
- if (str2sockunion(argv[3]->arg, &proto_addr) < 0 ||
- afi2family(afi) != sockunion_family(&proto_addr))
+ if (str2sockunion(argv[3]->arg, &proto_addr) < 0
+ || afi2family(afi) != sockunion_family(&proto_addr))
return nhrp_vty_return(vty, NHRP_ERR_PROTOCOL_ADDRESS_MISMATCH);
c = nhrp_cache_get(ifp, &proto_addr, 1);
c->map = 1;
if (strmatch(argv[4]->text, "local")) {
- nhrp_cache_update_binding(c, NHRP_CACHE_LOCAL, 0, NULL, 0, NULL);
- } else{
+ nhrp_cache_update_binding(c, NHRP_CACHE_LOCAL, 0, NULL, 0,
+ NULL);
+ } else {
if (str2sockunion(argv[4]->arg, &nbma_addr) < 0)
return nhrp_vty_return(vty, NHRP_ERR_FAIL);
nhrp_cache_update_binding(c, NHRP_CACHE_STATIC, 0,
- nhrp_peer_get(ifp, &nbma_addr), 0, NULL);
+ nhrp_peer_get(ifp, &nbma_addr), 0,
+ NULL);
}
return CMD_SUCCESS;
"IPv4 protocol address\n"
"IPv6 protocol address\n")
{
- VTY_DECLVAR_CONTEXT(interface,ifp);
+ VTY_DECLVAR_CONTEXT(interface, ifp);
afi_t afi = cmd_to_afi(argv[1]);
union sockunion proto_addr;
struct nhrp_cache *c;
- if (str2sockunion(argv[4]->arg, &proto_addr) < 0 ||
- afi2family(afi) != sockunion_family(&proto_addr))
+ if (str2sockunion(argv[4]->arg, &proto_addr) < 0
+ || afi2family(afi) != sockunion_family(&proto_addr))
return nhrp_vty_return(vty, NHRP_ERR_PROTOCOL_ADDRESS_MISMATCH);
c = nhrp_cache_get(ifp, &proto_addr, 0);
return;
if (!ctx->count) {
- vty_outln (vty, "%-8s %-8s %-24s %-24s %-6s %s",
- "Iface",
- "Type",
- "Protocol",
- "NBMA",
- "Flags",
- "Identity");
+ vty_out(vty, "%-8s %-8s %-24s %-24s %-6s %s\n", "Iface", "Type",
+ "Protocol", "NBMA", "Flags", "Identity");
}
ctx->count++;
- vty_outln(ctx->vty, "%-8s %-8s %-24s %-24s %c%c%c %s",
- c->ifp->name,
+ vty_out(ctx->vty, "%-8s %-8s %-24s %-24s %c%c%c %s\n", c->ifp->name,
nhrp_cache_type_str[c->cur.type],
sockunion2str(&c->remote_addr, buf[0], sizeof buf[0]),
- c->cur.peer ? sockunion2str(&c->cur.peer->vc->remote.nbma, buf[1], sizeof buf[1]) : "-",
- c->used ? 'U' : ' ',
- c->t_timeout ? 'T' : ' ',
+ c->cur.peer ? sockunion2str(&c->cur.peer->vc->remote.nbma,
+ buf[1], sizeof buf[1])
+ : "-",
+ c->used ? 'U' : ' ', c->t_timeout ? 'T' : ' ',
c->t_auth ? 'A' : ' ',
c->cur.peer ? c->cur.peer->vc->remote.id : "-");
}
-static void show_ip_nhrp_nhs(struct nhrp_nhs *n, struct nhrp_registration *reg, void *pctx)
+static void show_ip_nhrp_nhs(struct nhrp_nhs *n, struct nhrp_registration *reg,
+ void *pctx)
{
struct info_ctx *ctx = pctx;
struct vty *vty = ctx->vty;
char buf[2][SU_ADDRSTRLEN];
if (!ctx->count) {
- vty_outln (vty, "%-8s %-24s %-16s %-16s",
- "Iface",
- "FQDN",
- "NBMA",
- "Protocol");
+ vty_out(vty, "%-8s %-24s %-16s %-16s\n", "Iface", "FQDN",
+ "NBMA", "Protocol");
}
ctx->count++;
- vty_outln (vty, "%-8s %-24s %-16s %-16s",
- n->ifp->name,
- n->nbma_fqdn,
- (reg && reg->peer) ? sockunion2str(®->peer->vc->remote.nbma,
- buf[0], sizeof buf[0])
- : "-",
- sockunion2str(reg ? ®->proto_addr : &n->proto_addr,
- buf[1], sizeof buf[1]));
+ vty_out(vty, "%-8s %-24s %-16s %-16s\n", n->ifp->name, n->nbma_fqdn,
+ (reg && reg->peer) ? sockunion2str(®->peer->vc->remote.nbma,
+ buf[0], sizeof buf[0])
+ : "-",
+ sockunion2str(reg ? ®->proto_addr : &n->proto_addr, buf[1],
+ sizeof buf[1]));
}
static void show_ip_nhrp_shortcut(struct nhrp_shortcut *s, void *pctx)
char buf1[PREFIX_STRLEN], buf2[SU_ADDRSTRLEN];
if (!ctx->count) {
- vty_outln (vty, "%-8s %-24s %-24s %s",
- "Type",
- "Prefix",
- "Via",
+ vty_out(vty, "%-8s %-24s %-24s %s\n", "Type", "Prefix", "Via",
"Identity");
}
ctx->count++;
c = s->cache;
- vty_outln(ctx->vty, "%-8s %-24s %-24s %s",
- nhrp_cache_type_str[s->type],
+ vty_out(ctx->vty, "%-8s %-24s %-24s %s\n", nhrp_cache_type_str[s->type],
prefix2str(s->p, buf1, sizeof buf1),
c ? sockunion2str(&c->remote_addr, buf2, sizeof buf2) : "",
(c && c->cur.peer) ? c->cur.peer->vc->remote.id : "");
static void show_ip_opennhrp_cache(struct nhrp_cache *c, void *pctx)
{
struct info_ctx *ctx = pctx;
- struct vty *vty = ctx->vty;
char buf[SU_ADDRSTRLEN];
if (ctx->afi != family2afi(sockunion_family(&c->remote_addr)))
return;
- vty_outln(ctx->vty,
- "Type: %s%s"
- "Flags:%s%s%s"
- "Protocol-Address: %s/%zu",
- nhrp_cache_type_str[c->cur.type],
- VTYNL,
- (c->cur.peer && c->cur.peer->online) ? " up": "",
- c->used ? " used": "",
- VTYNL,
- sockunion2str(&c->remote_addr, buf, sizeof buf),
- 8 * family2addrsize(sockunion_family(&c->remote_addr)));
+ vty_out(ctx->vty,
+ "Type: %s\n"
+ "Flags:%s%s\n"
+ "Protocol-Address: %s/%zu\n",
+ nhrp_cache_type_str[c->cur.type],
+ (c->cur.peer && c->cur.peer->online) ? " up" : "",
+ c->used ? " used" : "",
+ sockunion2str(&c->remote_addr, buf, sizeof buf),
+ 8 * family2addrsize(sockunion_family(&c->remote_addr)));
if (c->cur.peer) {
- vty_outln(ctx->vty,
- "NBMA-Address: %s",
- sockunion2str(&c->cur.peer->vc->remote.nbma,
- buf, sizeof buf));
+ vty_out(ctx->vty, "NBMA-Address: %s\n",
+ sockunion2str(&c->cur.peer->vc->remote.nbma, buf,
+ sizeof buf));
}
if (sockunion_family(&c->cur.remote_nbma_natoa) != AF_UNSPEC) {
- vty_outln(ctx->vty,
- "NBMA-NAT-OA-Address: %s",
- sockunion2str(&c->cur.remote_nbma_natoa, buf, sizeof buf));
+ vty_out(ctx->vty, "NBMA-NAT-OA-Address: %s\n",
+ sockunion2str(&c->cur.remote_nbma_natoa, buf,
+ sizeof buf));
}
- vty_outln(ctx->vty, VTYNL);
+ vty_out(ctx->vty, "\n\n");
}
DEFUN(show_ip_nhrp, show_ip_nhrp_cmd,
"Shortcut information\n"
"opennhrpctl style cache dump\n")
{
- struct listnode *node;
+ struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
struct interface *ifp;
struct info_ctx ctx = {
- .vty = vty,
- .afi = cmd_to_afi(argv[1]),
+ .vty = vty, .afi = cmd_to_afi(argv[1]),
};
if (argc <= 3 || argv[3]->text[0] == 'c') {
- for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp))
+ FOR_ALL_INTERFACES (vrf, ifp)
nhrp_cache_foreach(ifp, show_ip_nhrp_cache, &ctx);
} else if (argv[3]->text[0] == 'n') {
- for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp))
+ FOR_ALL_INTERFACES (vrf, ifp)
nhrp_nhs_foreach(ifp, ctx.afi, show_ip_nhrp_nhs, &ctx);
} else if (argv[3]->text[0] == 's') {
nhrp_shortcut_foreach(ctx.afi, show_ip_nhrp_shortcut, &ctx);
} else {
- vty_outln (vty, "Status: ok%s", VTYNL);
+ vty_out(vty, "Status: ok\n\n");
ctx.count++;
- for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp))
+ FOR_ALL_INTERFACES (vrf, ifp)
nhrp_cache_foreach(ifp, show_ip_opennhrp_cache, &ctx);
}
if (!ctx.count) {
- vty_outln (vty, "%% No entries");
+ vty_out(vty, "%% No entries\n");
return CMD_WARNING;
}
struct vty *vty = ctx;
char buf[2][SU_ADDRSTRLEN];
- vty_outln (vty, "%-24s %-24s %c %-4d %-24s",
+ vty_out(vty, "%-24s %-24s %c %-4d %-24s\n",
sockunion2str(&vc->local.nbma, buf[0], sizeof buf[0]),
sockunion2str(&vc->remote.nbma, buf[1], sizeof buf[1]),
- notifier_active(&vc->notifier_list) ? 'n' : ' ',
- vc->ipsec,
+ notifier_active(&vc->notifier_list) ? 'n' : ' ', vc->ipsec,
vc->remote.id);
}
SHOW_STR
"DMVPN information\n")
{
- vty_outln (vty, "%-24s %-24s %-6s %-4s %-24s",
- "Src",
- "Dst",
- "Flags",
- "SAs",
- "Identity");
+ vty_out(vty, "%-24s %-24s %-6s %-4s %-24s\n", "Src", "Dst", "Flags",
+ "SAs", "Identity");
nhrp_vc_foreach(show_dmvpn_entry, vty);
"Dynamic cache entries\n"
"Shortcut entries\n")
{
- struct listnode *node;
+ struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
struct interface *ifp;
struct info_ctx ctx = {
- .vty = vty,
- .afi = cmd_to_afi(argv[1]),
- .count = 0,
+ .vty = vty, .afi = cmd_to_afi(argv[1]), .count = 0,
};
if (argc <= 3 || argv[3]->text[0] == 'c') {
- for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp))
+ FOR_ALL_INTERFACES (vrf, ifp)
nhrp_cache_foreach(ifp, clear_nhrp_cache, &ctx);
} else {
nhrp_shortcut_foreach(ctx.afi, clear_nhrp_shortcut, &ctx);
}
if (!ctx.count) {
- vty_outln (vty, "%% No entries");
+ vty_out(vty, "%% No entries\n");
return CMD_WARNING;
}
- vty_outln (vty, "%% %d entries cleared", ctx.count);
+ vty_out(vty, "%% %d entries cleared\n", ctx.count);
return CMD_SUCCESS;
}
struct vty *vty = ctx->vty;
char buf[2][SU_ADDRSTRLEN];
- if (!c->map) return;
- if (sockunion_family(&c->remote_addr) != ctx->family) return;
+ if (!c->map)
+ return;
+ if (sockunion_family(&c->remote_addr) != ctx->family)
+ return;
- vty_outln (vty, " %s nhrp map %s %s",
- ctx->aficmd,
+ vty_out(vty, " %s nhrp map %s %s\n", ctx->aficmd,
sockunion2str(&c->remote_addr, buf[0], sizeof buf[0]),
- c->cur.type == NHRP_CACHE_LOCAL ? "local" : sockunion2str(&c->cur.peer->vc->remote.nbma, buf[1], sizeof buf[1]));
+ c->cur.type == NHRP_CACHE_LOCAL
+ ? "local"
+ : sockunion2str(&c->cur.peer->vc->remote.nbma, buf[1],
+ sizeof buf[1]));
}
static int interface_config_write(struct vty *vty)
{
+ struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
struct write_map_ctx mapctx;
- struct listnode *node;
struct interface *ifp;
struct nhrp_interface *nifp;
struct nhrp_nhs *nhs;
char buf[SU_ADDRSTRLEN];
int i;
- for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp)) {
- vty_outln (vty, "interface %s", ifp->name);
+ FOR_ALL_INTERFACES (vrf, ifp) {
+ vty_frame(vty, "interface %s\n", ifp->name);
if (ifp->desc)
- vty_outln (vty, " description %s", ifp->desc);
+ vty_out(vty, " description %s\n", ifp->desc);
nifp = ifp->info;
if (nifp->ipsec_profile) {
if (nifp->ipsec_fallback_profile)
vty_out(vty, " fallback-profile %s",
nifp->ipsec_fallback_profile);
- vty_out (vty, VTYNL);
+ vty_out(vty, "\n");
}
if (nifp->source)
- vty_outln (vty, " tunnel source %s",
- nifp->source);
+ vty_out(vty, " tunnel source %s\n", nifp->source);
for (afi = 0; afi < AFI_MAX; afi++) {
struct nhrp_afi_data *ad = &nifp->afi[afi];
aficmd = afi_to_cmd(afi);
if (ad->network_id)
- vty_outln (vty, " %s nhrp network-id %u",
- aficmd,ad->network_id);
+ vty_out(vty, " %s nhrp network-id %u\n", aficmd,
+ ad->network_id);
if (ad->holdtime != NHRPD_DEFAULT_HOLDTIME)
- vty_outln (vty, " %s nhrp holdtime %u",
- aficmd,ad->holdtime);
+ vty_out(vty, " %s nhrp holdtime %u\n", aficmd,
+ ad->holdtime);
if (ad->configured_mtu < 0)
- vty_outln (vty, " %s nhrp mtu opennhrp",
- aficmd);
+ vty_out(vty, " %s nhrp mtu opennhrp\n", aficmd);
else if (ad->configured_mtu)
- vty_outln (vty, " %s nhrp mtu %u",
- aficmd,ad->configured_mtu);
+ vty_out(vty, " %s nhrp mtu %u\n", aficmd,
+ ad->configured_mtu);
for (i = 0; interface_flags_desc[i].str != NULL; i++) {
if (!(ad->flags & interface_flags_desc[i].key))
continue;
- vty_outln (vty, " %s nhrp %s",
- aficmd, interface_flags_desc[i].str);
+ vty_out(vty, " %s nhrp %s\n", aficmd,
+ interface_flags_desc[i].str);
}
- mapctx = (struct write_map_ctx) {
+ mapctx = (struct write_map_ctx){
.vty = vty,
.family = afi2family(afi),
.aficmd = aficmd,
};
- nhrp_cache_foreach(ifp, interface_config_write_nhrp_map, &mapctx);
+ nhrp_cache_foreach(ifp, interface_config_write_nhrp_map,
+ &mapctx);
- list_for_each_entry(nhs, &ad->nhslist_head, nhslist_entry) {
- vty_outln (vty, " %s nhrp nhs %s nbma %s",
+ list_for_each_entry(nhs, &ad->nhslist_head,
+ nhslist_entry)
+ {
+ vty_out(vty, " %s nhrp nhs %s nbma %s\n",
aficmd,
- sockunion_family(&nhs->proto_addr) == AF_UNSPEC ? "dynamic" : sockunion2str(&nhs->proto_addr, buf, sizeof buf),
+ sockunion_family(&nhs->proto_addr)
+ == AF_UNSPEC
+ ? "dynamic"
+ : sockunion2str(
+ &nhs->proto_addr, buf,
+ sizeof buf),
nhs->nbma_fqdn);
}
}
- vty_outln (vty, "!");
+ vty_endframe(vty, "!\n");
}
return 0;
install_default(ZEBRA_NODE);
/* access-list commands */
- access_list_init ();
+ access_list_init();
/* global commands */
install_element(VIEW_NODE, &show_debugging_nhrp_cmd);