Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 667a5f18 authored by Vince Busam's avatar Vince Busam Committed by Simon Horman
Browse files

IPVS: Convert procfs files for IPv6 entry output



Correctly output IPv6 connection/service/dest entries in procfs files.

Signed-off-by: default avatarVince Busam <vbusam@google.com>
Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
parent 7937df15
Loading
Loading
Loading
Loading
+33 −4
Original line number Diff line number Diff line
@@ -815,8 +815,22 @@ static int ip_vs_conn_seq_show(struct seq_file *seq, void *v)
	else {
		const struct ip_vs_conn *cp = v;

#ifdef CONFIG_IP_VS_IPV6
		if (cp->af == AF_INET6)
			seq_printf(seq,
				"%-3s " NIP6_FMT " %04X " NIP6_FMT
				" %04X " NIP6_FMT " %04X %-11s %7lu\n",
				ip_vs_proto_name(cp->protocol),
				NIP6(cp->caddr.in6), ntohs(cp->cport),
				NIP6(cp->vaddr.in6), ntohs(cp->vport),
				NIP6(cp->daddr.in6), ntohs(cp->dport),
				ip_vs_state_name(cp->protocol, cp->state),
				(cp->timer.expires-jiffies)/HZ);
		else
#endif
			seq_printf(seq,
			"%-3s %08X %04X %08X %04X %08X %04X %-11s %7lu\n",
				"%-3s %08X %04X %08X %04X"
				" %08X %04X %-11s %7lu\n",
				ip_vs_proto_name(cp->protocol),
				ntohl(cp->caddr.ip), ntohs(cp->cport),
				ntohl(cp->vaddr.ip), ntohs(cp->vport),
@@ -864,8 +878,23 @@ static int ip_vs_conn_sync_seq_show(struct seq_file *seq, void *v)
	else {
		const struct ip_vs_conn *cp = v;

#ifdef CONFIG_IP_VS_IPV6
		if (cp->af == AF_INET6)
			seq_printf(seq,
				"%-3s " NIP6_FMT " %04X " NIP6_FMT
				" %04X " NIP6_FMT " %04X %-11s %-6s %7lu\n",
				ip_vs_proto_name(cp->protocol),
				NIP6(cp->caddr.in6), ntohs(cp->cport),
				NIP6(cp->vaddr.in6), ntohs(cp->vport),
				NIP6(cp->daddr.in6), ntohs(cp->dport),
				ip_vs_state_name(cp->protocol, cp->state),
				ip_vs_origin_name(cp->flags),
				(cp->timer.expires-jiffies)/HZ);
		else
#endif
			seq_printf(seq,
			"%-3s %08X %04X %08X %04X %08X %04X %-11s %-6s %7lu\n",
				"%-3s %08X %04X %08X %04X "
				"%08X %04X %-11s %-6s %7lu\n",
				ip_vs_proto_name(cp->protocol),
				ntohl(cp->caddr.ip), ntohs(cp->cport),
				ntohl(cp->vaddr.ip), ntohs(cp->vport),
+40 −14
Original line number Diff line number Diff line
@@ -1793,15 +1793,25 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
		const struct ip_vs_iter *iter = seq->private;
		const struct ip_vs_dest *dest;

		if (iter->table == ip_vs_svc_table)
		if (iter->table == ip_vs_svc_table) {
#ifdef CONFIG_IP_VS_IPV6
			if (svc->af == AF_INET6)
				seq_printf(seq, "%s  [" NIP6_FMT "]:%04X %s ",
					   ip_vs_proto_name(svc->protocol),
					   NIP6(svc->addr.in6),
					   ntohs(svc->port),
					   svc->scheduler->name);
			else
#endif
				seq_printf(seq, "%s  %08X:%04X %s ",
					   ip_vs_proto_name(svc->protocol),
					   ntohl(svc->addr.ip),
					   ntohs(svc->port),
					   svc->scheduler->name);
		else
		} else {
			seq_printf(seq, "FWM  %08X %s ",
				   svc->fwmark, svc->scheduler->name);
		}

		if (svc->flags & IP_VS_SVC_F_PERSISTENT)
			seq_printf(seq, "persistent %d %08X\n",
@@ -1811,13 +1821,29 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
			seq_putc(seq, '\n');

		list_for_each_entry(dest, &svc->destinations, n_list) {
#ifdef CONFIG_IP_VS_IPV6
			if (dest->af == AF_INET6)
				seq_printf(seq,
				   "  -> %08X:%04X      %-7s %-6d %-10d %-10d\n",
				   ntohl(dest->addr.ip), ntohs(dest->port),
					   "  -> [" NIP6_FMT "]:%04X"
					   "      %-7s %-6d %-10d %-10d\n",
					   NIP6(dest->addr.in6),
					   ntohs(dest->port),
					   ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
					   atomic_read(&dest->weight),
					   atomic_read(&dest->activeconns),
					   atomic_read(&dest->inactconns));
			else
#endif
				seq_printf(seq,
					   "  -> %08X:%04X      "
					   "%-7s %-6d %-10d %-10d\n",
					   ntohl(dest->addr.ip),
					   ntohs(dest->port),
					   ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
					   atomic_read(&dest->weight),
					   atomic_read(&dest->activeconns),
					   atomic_read(&dest->inactconns));

		}
	}
	return 0;