diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2023-12-21 15:13:16 +0200 | 
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2023-12-21 22:57:11 +0200 | 
| commit | cb777f9576d7031bee30c1b90bf5c9c6eda3fe58 (patch) | |
| tree | 23783e96410f889864aa80e3f63acd99c75daf98 /zebra/interface.c | |
| parent | f95479b15072db0de63a0d7d25cfda7ccdd4a324 (diff) | |
zebra: Show IPv6 link-local interfaces under `show interface brief` output
Despite if it's managed by FRR or the kernel, show it. If the system has only
link-local addresses, we should show it unless it's a secondary one.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'zebra/interface.c')
| -rw-r--r-- | zebra/interface.c | 40 | 
1 files changed, 14 insertions, 26 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index bbb72675f1..6115ed0a02 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -2500,28 +2500,21 @@ static void ifs_dump_brief_vty(struct vty *vty, struct vrf *vrf)  				v6_list_size++;  		}  		frr_each (if_connected, ifp->connected, connected) { -			if (CHECK_FLAG(connected->conf, ZEBRA_IFC_REAL) -			    && !CHECK_FLAG(connected->flags, -					   ZEBRA_IFA_SECONDARY) -			    && (connected->address->family == AF_INET6)) { +			if (!CHECK_FLAG(connected->flags, ZEBRA_IFA_SECONDARY) && +			    (connected->address->family == AF_INET6)) {  				p = connected->address; -				/* Don't print link local pfx */ -				if (!IN6_IS_ADDR_LINKLOCAL(&p->u.prefix6)) { -					if (first_pfx_printed) { -						/* padding to prepare row only -						 * for ip addr */ -						vty_out(vty, "%-40s", ""); -						if (v6_list_size > 1) -							vty_out(vty, "+ "); -						vty_out(vty, "%pFX\n", p); -					} else { -						if (v6_list_size > 1) -							vty_out(vty, "+ "); -						vty_out(vty, "%pFX\n", p); -					} -					first_pfx_printed = true; -					break; +				if (first_pfx_printed) { +					vty_out(vty, "%-40s", ""); +					if (v6_list_size > 1) +						vty_out(vty, "+ "); +					vty_out(vty, "%pFX\n", p); +				} else { +					if (v6_list_size > 1) +						vty_out(vty, "+ "); +					vty_out(vty, "%pFX\n", p);  				} +				first_pfx_printed = true; +				break;  			}  		}  		if (!first_pfx_printed) @@ -2549,12 +2542,7 @@ static void ifs_dump_brief_vty_json(json_object *json, struct vrf *vrf)  		json_addrs = json_object_new_array();  		json_object_object_add(json_if, "addresses", json_addrs);  		frr_each (if_connected, ifp->connected, connected) { -			if (CHECK_FLAG(connected->conf, ZEBRA_IFC_REAL) -			    && !CHECK_FLAG(connected->flags, -					   ZEBRA_IFA_SECONDARY) -			    && !(connected->address->family == AF_INET6 -				 && IN6_IS_ADDR_LINKLOCAL( -					 &connected->address->u.prefix6))) { +			if (!CHECK_FLAG(connected->flags, ZEBRA_IFA_SECONDARY)) {  				char buf[PREFIX2STR_BUFFER];  				json_array_string_add(  | 
