X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FProcFSTools.pm;h=2d3123bbbce07c33fa03c3f0c4d5f0f50acfba3c;hp=8bb0d729b50b8ab974cdbc5d3b2ac57d5fe24e70;hb=27107d5b960fbc8b9c8e900ec17350d3826990fa;hpb=61aa94e472dbf1333870ce965ffbbf351f9a7b52 diff --git a/src/PVE/ProcFSTools.pm b/src/PVE/ProcFSTools.pm index 8bb0d72..2d3123b 100644 --- a/src/PVE/ProcFSTools.pm +++ b/src/PVE/ProcFSTools.pm @@ -284,4 +284,29 @@ sub read_proc_net_route { return $res; } +sub read_proc_net_ipv6_route { + my $filename = "/proc/net/ipv6_route"; + + my $res = []; + + my $fh = IO::File->new ($filename, "r"); + return $res if !$fh; + + my $read_v6addr = sub { s/....(?!$)/$&:/g }; + + # ipv6_route has no header + while (defined(my $line = <$fh>)) { + my ($dest, $prefix, $nexthop, $metric, $iface) = (split(/\s+/, $line))[0,1,4,5,9]; + push @$res, { + dest => &$read_v6addr($dest), + prefix => $prefix, + gateway => &$read_v6addr($nexthop), + metric => $metric, + iface => $iface + }; + } + + return $res; +} + 1;