IPVS: Convert procfs files for IPv6 entry output
Correctly output IPv6 connection/service/dest entries in procfs files. Signed-off-by: Vince Busam <vbusam@google.com> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
7937df1564
commit
667a5f1816
2 changed files with 73 additions and 18 deletions
|
@ -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;
|
||||
|
||||
seq_printf(seq,
|
||||
"%-3s %08X %04X %08X %04X %08X %04X %-11s %7lu\n",
|
||||
#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",
|
||||
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;
|
||||
|
||||
seq_printf(seq,
|
||||
"%-3s %08X %04X %08X %04X %08X %04X %-11s %-6s %7lu\n",
|
||||
#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",
|
||||
ip_vs_proto_name(cp->protocol),
|
||||
ntohl(cp->caddr.ip), ntohs(cp->cport),
|
||||
ntohl(cp->vaddr.ip), ntohs(cp->vport),
|
||||
|
|
|
@ -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)
|
||||
seq_printf(seq, "%s %08X:%04X %s ",
|
||||
ip_vs_proto_name(svc->protocol),
|
||||
ntohl(svc->addr.ip),
|
||||
ntohs(svc->port),
|
||||
svc->scheduler->name);
|
||||
else
|
||||
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 {
|
||||
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) {
|
||||
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));
|
||||
#ifdef CONFIG_IP_VS_IPV6
|
||||
if (dest->af == AF_INET6)
|
||||
seq_printf(seq,
|
||||
" -> [" 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;
|
||||
|
|
Loading…
Reference in a new issue