summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ospfctl
diff options
context:
space:
mode:
authordenis <denis@openbsd.org>2020-05-20 11:11:24 +0000
committerdenis <denis@openbsd.org>2020-05-20 11:11:24 +0000
commitc502c694d41b0a2b398345ee33c4803b91c2fde3 (patch)
tree40358693c6ca621999f49648868528e80484f363 /usr.sbin/ospfctl
parentInclude interface name in warning when a RA is recieved from a non-link-local (diff)
downloadwireguard-openbsd-c502c694d41b0a2b398345ee33c4803b91c2fde3.tar.xz
wireguard-openbsd-c502c694d41b0a2b398345ee33c4803b91c2fde3.zip
style(9), no functionnal change.
Diffstat (limited to 'usr.sbin/ospfctl')
-rw-r--r--usr.sbin/ospfctl/ospfctl.c8
-rw-r--r--usr.sbin/ospfctl/ospfctl.h4
-rw-r--r--usr.sbin/ospfctl/output.c240
3 files changed, 123 insertions, 129 deletions
diff --git a/usr.sbin/ospfctl/ospfctl.c b/usr.sbin/ospfctl/ospfctl.c
index d5bbce9172e..e41f739c336 100644
--- a/usr.sbin/ospfctl/ospfctl.c
+++ b/usr.sbin/ospfctl/ospfctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ospfctl.c,v 1.67 2020/05/18 17:52:18 denis Exp $ */
+/* $OpenBSD: ospfctl.c,v 1.68 2020/05/20 11:11:24 denis Exp $ */
/*
* Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
@@ -43,7 +43,7 @@ __dead void usage(void);
int show(struct imsg *, struct parse_result *);
-struct imsgbuf *ibuf;
+struct imsgbuf *ibuf;
const struct output *output = &show_output;
__dead void
@@ -218,7 +218,7 @@ main(int argc, char *argv[])
err(1, "write error");
/* no output for certain commands such as log verbose */
- if(!done){
+ if (!done) {
output->head(res);
while (!done) {
@@ -563,6 +563,7 @@ const char *
print_baudrate(u_int64_t baudrate)
{
static char buf[32];
+
if (baudrate > IF_Gbps(1))
snprintf(buf, sizeof(buf), "%llu GBit/s", baudrate / IF_Gbps(1));
else if (baudrate > IF_Mbps(1))
@@ -573,4 +574,3 @@ print_baudrate(u_int64_t baudrate)
snprintf(buf, sizeof(buf), "%llu Bit/s", baudrate);
return (buf);
}
-
diff --git a/usr.sbin/ospfctl/ospfctl.h b/usr.sbin/ospfctl/ospfctl.h
index 5700e52c777..3b1c088e773 100644
--- a/usr.sbin/ospfctl/ospfctl.h
+++ b/usr.sbin/ospfctl/ospfctl.h
@@ -28,9 +28,9 @@ struct output {
void (*fib)(struct kroute *);
void (*fib_interface)(struct kif *);
void (*db)(struct lsa *, struct in_addr, u_int8_t,
- char ifname[IF_NAMESIZE]);
+ char *);
void (*db_simple)(struct lsa_hdr *, struct in_addr, u_int8_t,
- char ifname[IF_NAMESIZE]);
+ char *);
void (*tail)(void);
};
diff --git a/usr.sbin/ospfctl/output.c b/usr.sbin/ospfctl/output.c
index 9e4f8cb5efd..12d3f8249a9 100644
--- a/usr.sbin/ospfctl/output.c
+++ b/usr.sbin/ospfctl/output.c
@@ -89,7 +89,8 @@ show_summary(struct ctl_sum *sum)
}
static void
-show_summary_area(struct ctl_sum_area *sumarea){
+show_summary_area(struct ctl_sum_area *sumarea)
+{
printf("\nArea ID: %s\n", inet_ntoa(sumarea->area));
printf(" Number of interfaces in this area: %d\n",
sumarea->num_iface);
@@ -150,12 +151,12 @@ show_interface(struct ctl_iface *iface, int detail)
{
char *netid;
- // This wasn't previously executed on detail call
+ /* XXX This wasn't previously executed on detail call */
if (asprintf(&netid, "%s/%d", inet_ntoa(iface->addr),
mask2prefixlen(iface->mask.s_addr)) == -1)
err(1, NULL);
- if(detail){
+ if (detail) {
printf("\n");
printf("Interface %s, line protocol is %s\n",
iface->name, print_link(iface->flags));
@@ -218,7 +219,7 @@ show_interface(struct ctl_iface *iface, int detail)
break;
}
}
- }else{
+ } else {
printf("%-11s %-18s %-6s %-10s %-10s %s %3d %3d\n",
iface->name, netid, if_state_name(iface->state),
iface->hello_timer.tv_sec < 0 ? "-" :
@@ -240,7 +241,7 @@ show_neighbor(struct ctl_nbr *nbr, int detail)
if_state_name(nbr->iface_state)) == -1)
err(1, NULL);
- if(detail){
+ if (detail) {
printf("\nNeighbor %s, ", inet_ntoa(nbr->id));
printf("interface address %s\n", inet_ntoa(nbr->addr));
printf(" Area %s, interface %s\n", inet_ntoa(nbr->area),
@@ -259,7 +260,7 @@ show_neighbor(struct ctl_nbr *nbr, int detail)
printf(" Link State Request List %d\n", nbr->ls_req_lst_cnt);
printf(" Link State Retransmission List %d\n",
nbr->ls_retrans_lst_cnt);
- }else{
+ } else {
printf("%-15s %-3d %-12s %-9s", inet_ntoa(nbr->id),
nbr->priority, state, fmt_timeframe_core(nbr->dead_timer));
printf("%-15s %-9s %s\n", inet_ntoa(nbr->addr), nbr->name,
@@ -274,7 +275,7 @@ show_rib(struct ctl_rt *rt, int detail)
char *dstnet;
static u_int8_t lasttype;
- if(detail){
+ if (detail) {
switch (rt->p_type) {
case PT_INTRA_AREA:
case PT_INTER_AREA:
@@ -306,8 +307,7 @@ show_rib(struct ctl_rt *rt, int detail)
free(dstnet);
if (rt->d_type == DT_RTR)
- printf(" %-7s",
- print_ospf_rtr_flags(rt->flags));
+ printf(" %-7s", print_ospf_rtr_flags(rt->flags));
printf("\n");
break;
@@ -316,14 +316,14 @@ show_rib(struct ctl_rt *rt, int detail)
if (lasttype != RIB_EXT)
show_rib_head(rt->area, rt->d_type, rt->p_type);
- if (asprintf(&dstnet, "%s/%d",
- inet_ntoa(rt->prefix), rt->prefixlen) == -1)
+ if (asprintf(&dstnet, "%s/%d", inet_ntoa(rt->prefix),
+ rt->prefixlen) == -1)
err(1, NULL);
printf("%-18s %-15s ", dstnet, inet_ntoa(rt->nexthop));
- printf("%-15s %-12s %-7d %-7d\n",
- inet_ntoa(rt->adv_rtr), path_type_name(rt->p_type),
- rt->cost, rt->cost2);
+ printf("%-15s %-12s %-7d %-7d\n", inet_ntoa(rt->adv_rtr),
+ path_type_name(rt->p_type), rt->cost, rt->cost2);
+
free(dstnet);
lasttype = RIB_EXT;
@@ -331,7 +331,7 @@ show_rib(struct ctl_rt *rt, int detail)
default:
errx(1, "unknown route type");
}
- }else{
+ } else {
switch (rt->d_type) {
case DT_NET:
if (asprintf(&dstnet, "%s/%d", inet_ntoa(rt->prefix),
@@ -352,6 +352,7 @@ show_rib(struct ctl_rt *rt, int detail)
path_type_name(rt->p_type),
dst_type_name(rt->d_type), rt->cost,
rt->uptime == 0 ? "-" : fmt_timeframe_core(rt->uptime));
+
free(dstnet);
}
}
@@ -377,8 +378,7 @@ show_fib(struct kroute *k)
printf(" ");
printf("%4d ", k->priority);
- if (asprintf(&p, "%s/%u", inet_ntoa(k->prefix), k->prefixlen) ==
- -1)
+ if (asprintf(&p, "%s/%u", inet_ntoa(k->prefix), k->prefixlen) == -1)
err(1, NULL);
printf("%-20s ", p);
@@ -512,7 +512,7 @@ show_db_hdr_msg_detail(struct lsa_hdr *lsa)
static void
show_db_simple(struct lsa_hdr *lsa, struct in_addr area_id, u_int8_t lasttype,
- char ifname[IF_NAMESIZE])
+ char *ifname)
{
if (lsa->type != lasttype) {
show_database_head(area_id, ifname, lsa->type);
@@ -526,7 +526,7 @@ show_db_simple(struct lsa_hdr *lsa, struct in_addr area_id, u_int8_t lasttype,
}
static void
show_db(struct lsa *lsa, struct in_addr area_id, u_int8_t lasttype,
- char ifname[IF_NAMESIZE])
+ char *ifname)
{
struct in_addr addr, data;
struct lsa_asext *asext;
@@ -538,113 +538,107 @@ show_db(struct lsa *lsa, struct in_addr area_id, u_int8_t lasttype,
show_db_hdr_msg_detail(&lsa->hdr);
switch (lsa->hdr.type) {
- case LSA_TYPE_EXTERNAL:
- addr.s_addr = lsa->data.asext.mask;
- printf("Network Mask: %s\n", inet_ntoa(addr));
-
- asext = (struct lsa_asext *)((char *)lsa +
- sizeof(lsa->hdr));
-
- printf(" Metric type: ");
- if (ntohl(lsa->data.asext.metric) & LSA_ASEXT_E_FLAG)
- printf("2\n");
- else
- printf("1\n");
- printf(" Metric: %d\n", ntohl(asext->metric)
- & LSA_METRIC_MASK);
- addr.s_addr = asext->fw_addr;
- printf(" Forwarding Address: %s\n", inet_ntoa(addr));
- printf(" External Route Tag: %d\n\n",
- ntohl(asext->ext_tag));
- break;
- case LSA_TYPE_NETWORK:
- addr.s_addr = lsa->data.net.mask;
- printf("Network Mask: %s\n", inet_ntoa(addr));
-
- nlinks = (ntohs(lsa->hdr.len) - sizeof(struct lsa_hdr)
- - sizeof(u_int32_t)) / sizeof(struct lsa_net_link);
- off = sizeof(lsa->hdr) + sizeof(u_int32_t);
- printf("Number of Routers: %d\n", nlinks);
-
- for (i = 0; i < nlinks; i++) {
- addr.s_addr = lsa->data.net.att_rtr[i];
- printf(" Attached Router: %s\n",
+ case LSA_TYPE_EXTERNAL:
+ addr.s_addr = lsa->data.asext.mask;
+ printf("Network Mask: %s\n", inet_ntoa(addr));
+
+ asext = (struct lsa_asext *)((char *)lsa + sizeof(lsa->hdr));
+
+ printf(" Metric type: ");
+ if (ntohl(lsa->data.asext.metric) & LSA_ASEXT_E_FLAG)
+ printf("2\n");
+ else
+ printf("1\n");
+ printf(" Metric: %d\n", ntohl(asext->metric) &
+ LSA_METRIC_MASK);
+ addr.s_addr = asext->fw_addr;
+ printf(" Forwarding Address: %s\n", inet_ntoa(addr));
+ printf(" External Route Tag: %d\n\n", ntohl(asext->ext_tag));
+ break;
+ case LSA_TYPE_NETWORK:
+ addr.s_addr = lsa->data.net.mask;
+ printf("Network Mask: %s\n", inet_ntoa(addr));
+
+ nlinks = (ntohs(lsa->hdr.len) - sizeof(struct lsa_hdr)
+ - sizeof(u_int32_t)) / sizeof(struct lsa_net_link);
+ off = sizeof(lsa->hdr) + sizeof(u_int32_t);
+ printf("Number of Routers: %d\n", nlinks);
+
+ for (i = 0; i < nlinks; i++) {
+ addr.s_addr = lsa->data.net.att_rtr[i];
+ printf(" Attached Router: %s\n", inet_ntoa(addr));
+ }
+
+ printf("\n");
+ break;
+ case LSA_TYPE_ROUTER:
+ printf("Flags: %s\n", print_ospf_flags(lsa->data.rtr.flags));
+ nlinks = ntohs(lsa->data.rtr.nlinks);
+ printf("Number of Links: %d\n\n", nlinks);
+
+ off = sizeof(lsa->hdr) + sizeof(struct lsa_rtr);
+
+ for (i = 0; i < nlinks; i++) {
+ rtr_link = (struct lsa_rtr_link *)((char *)lsa + off);
+
+ printf(" Link connected to: %s\n",
+ print_rtr_link_type(rtr_link->type));
+
+ addr.s_addr = rtr_link->id;
+ data.s_addr = rtr_link->data;
+
+ switch (rtr_link->type) {
+ case LINK_TYPE_POINTTOPOINT:
+ case LINK_TYPE_VIRTUAL:
+ printf(" Link ID (Neighbors Router ID): "
+ "%s\n", inet_ntoa(addr));
+ printf(" Link Data (Router Interface "
+ "address): %s\n", inet_ntoa(data));
+ break;
+ case LINK_TYPE_TRANSIT_NET:
+ printf(" Link ID (Designated Router "
+ "address): %s\n", inet_ntoa(addr));
+ printf(" Link Data (Router Interface "
+ "address): %s\n", inet_ntoa(data));
+ break;
+ case LINK_TYPE_STUB_NET:
+ printf(" Link ID (Network ID): %s\n",
+ inet_ntoa(addr));
+ printf(" Link Data (Network Mask): %s\n",
+ inet_ntoa(data));
+ break;
+ default:
+ printf(" Link ID (Unknown): %s\n",
inet_ntoa(addr));
+ printf(" Link Data (Unknown): %s\n",
+ inet_ntoa(data));
+ break;
}
- printf("\n");
- break;
- case LSA_TYPE_ROUTER:
- printf("Flags: %s\n",
- print_ospf_flags(lsa->data.rtr.flags));
- nlinks = ntohs(lsa->data.rtr.nlinks);
- printf("Number of Links: %d\n\n", nlinks);
-
- off = sizeof(lsa->hdr) + sizeof(struct lsa_rtr);
-
- for (i = 0; i < nlinks; i++) {
- rtr_link =
- (struct lsa_rtr_link *)((char *)lsa + off);
-
- printf(" Link connected to: %s\n",
- print_rtr_link_type(rtr_link->type));
-
- addr.s_addr = rtr_link->id;
- data.s_addr = rtr_link->data;
-
- switch (rtr_link->type) {
- case LINK_TYPE_POINTTOPOINT:
- case LINK_TYPE_VIRTUAL:
- printf(" Link ID (Neighbors Router "
- "ID): %s\n", inet_ntoa(addr));
- printf(" Link Data (Router Interface "
- "address): %s\n", inet_ntoa(data));
- break;
- case LINK_TYPE_TRANSIT_NET:
- printf(" Link ID (Designated Router "
- "address): %s\n", inet_ntoa(addr));
- printf(" Link Data (Router Interface "
- "address): %s\n", inet_ntoa(data));
- break;
- case LINK_TYPE_STUB_NET:
- printf(" Link ID (Network ID): %s\n",
- inet_ntoa(addr));
- printf(" Link Data (Network Mask): "
- "%s\n", inet_ntoa(data));
- break;
- default:
- printf(" Link ID (Unknown): %s\n",
- inet_ntoa(addr));
- printf(" Link Data (Unknown): %s\n",
- inet_ntoa(data));
- break;
- }
-
- printf(" Metric: %d\n\n",
- ntohs(rtr_link->metric));
-
- off += sizeof(struct lsa_rtr_link) +
- rtr_link->num_tos * sizeof(u_int32_t);
- }
- break;
- case LSA_TYPE_SUM_ROUTER:
- if (lsa->hdr.type != lasttype)
- show_database_head(area_id, ifname,
- lsa->hdr.type);
- show_db_hdr_msg_detail(&lsa->hdr);
- addr.s_addr = lsa->data.sum.mask;
- printf("Network Mask: %s\n", inet_ntoa(addr));
- printf("Metric: %d\n\n", ntohl(lsa->data.sum.metric) &
- LSA_METRIC_MASK);
- break;
- case LSA_TYPE_LINK_OPAQ:
- case LSA_TYPE_AREA_OPAQ:
- case LSA_TYPE_AS_OPAQ:
- if (lsa->hdr.type != lasttype)
- show_database_head(area_id, ifname,
- lsa->hdr.type);
- show_db_hdr_msg_detail(&lsa->hdr);
- break;
+ printf(" Metric: %d\n\n", ntohs(rtr_link->metric));
+
+ off += sizeof(struct lsa_rtr_link) +
+ rtr_link->num_tos * sizeof(u_int32_t);
+ }
+ break;
+ case LSA_TYPE_SUM_ROUTER:
+ if (lsa->hdr.type != lasttype)
+ show_database_head(area_id, ifname, lsa->hdr.type);
+
+ show_db_hdr_msg_detail(&lsa->hdr);
+ addr.s_addr = lsa->data.sum.mask;
+ printf("Network Mask: %s\n", inet_ntoa(addr));
+ printf("Metric: %d\n\n", ntohl(lsa->data.sum.metric) &
+ LSA_METRIC_MASK);
+ break;
+ case LSA_TYPE_LINK_OPAQ:
+ case LSA_TYPE_AREA_OPAQ:
+ case LSA_TYPE_AS_OPAQ:
+ if (lsa->hdr.type != lasttype)
+ show_database_head(area_id, ifname, lsa->hdr.type);
+
+ show_db_hdr_msg_detail(&lsa->hdr);
+ break;
}
}