On Sun, Apr 01, 2018 at 11:09:18AM +0200, Florian Obser wrote: > On Sun, Apr 01, 2018 at 10:42:09AM +0200, Otto Moerbeek wrote: > > On Sun, Apr 01, 2018 at 10:39:39AM +0200, Florian Obser wrote: > > > > > On a backbone router with many interfaces route show scrolls for quite > > > some time and it is difficult to see at a glance what is going on. > > > > > > Colour coding is an obvious improvement. > > > > > > The following diff sets the background colour to green for up routes > > > and black for down routes. > > > > > > The default route has yellow text colour (because 10BASE5 yellow > > > cable), reject routes red and blackhole routes black text colour. > > > > > > Host routes are underlined, multicast routes blink and multipath > > > routes blink fast. > > > > > > I believe the colours are intuitively obvious so no need to document > > > the meaning. > > > > > > OK? > > > > Nope, this won't work on my teletype. > > > > Oh, good point. What capabilities does it have? > > I guess colours are right out. But underline should work, no? How > about blink? > > For reject routes, can we get it to generate a rattling sound or a high > pitched screaching noise?
Blink is a bit hard, you can do (XXXX BS BS BS BS) repeatedly until the paper is gone to mark a blackhole route though You also do a bell bang bell bang ... by repeating CR, a few HT and then CR again -Otto > > > > > > > > diff --git show.c show.c > > > index 913baf6cdb6..0e5d1e780e2 100644 > > > --- show.c > > > +++ show.c > > > @@ -278,6 +278,20 @@ p_rtentry(struct rt_msghdr *rtm) > > > if ((sa = rti_info[RTAX_DST]) == NULL) > > > return; > > > > > > + if (rtm->rtm_flags & RTF_UP) > > > + printf("\e[42m"); > > > + if (!(rtm->rtm_flags & RTF_UP)) > > > + printf("\e[40m"); > > > + if (rtm->rtm_flags & RTF_REJECT) > > > + printf("\e[31m"); > > > + if (rtm->rtm_flags & RTF_BLACKHOLE) > > > + printf("\e[30m"); > > > + if (rtm->rtm_flags & RTF_MULTICAST) > > > + printf("\e[5m"); > > > + if (rtm->rtm_flags & RTF_MPATH) > > > + printf("\e[6m"); > > > + if (rtm->rtm_flags & RTF_HOST) > > > + printf("\e[4m"); > > > p_sockaddr(sa, mask, rtm->rtm_flags, WID_DST(sa->sa_family)); > > > p_sockaddr_mpls(sa, rti_info[RTAX_SRC], rtm->rtm_mpls, > > > WID_DST(sa->sa_family)); > > > @@ -297,6 +311,7 @@ p_rtentry(struct rt_msghdr *rtm) > > > if_indextoname(rtm->rtm_index, ifbuf)); > > > if (verbose && rti_info[RTAX_LABEL]) > > > printf(" %s", routename(rti_info[RTAX_LABEL])); > > > + printf("\e[0m"); > > > putchar('\n'); > > > } > > > > > > @@ -369,6 +384,10 @@ p_sockaddr(struct sockaddr *sa, struct sockaddr > > > *mask, int flags, int width) > > > cp = netname(sa, mask); > > > break; > > > } > > > + > > > + if (strcmp(cp, "default") == 0) > > > + printf("\e[33m"); > > > + > > > if (width < 0) > > > printf("%s", cp); > > > else { > > > > > > -- > > > I'm not entirely sure you are real. > > > > -- > I'm not entirely sure you are real.