#!/usr/bin/perl my $range_local = 1022; my $range_pseudo = 999; my $i = 0; my $j = 0; my $count = 0; my $file = "/mnt/sda1/IOU/NETMAP"; #If NETMAP file exists, get the local IOU ID otherwise generate the new one. Delete existing NETMAP. if (-e $file) { open (NETMAP, "$file") or die "open failed : $!n"; $first_line = ; ($local_id) = $first_line =~ /A([^:s]+)/; close NETMAP; open (NETMAP, ">$file") or die "open failed : $!n"; close NETMAP; } else { $local_id = int(rand($range_local)) + 1; } print "Local IOU ID is $local_id n"; $pseudo_id = int(rand($range_pseudo)) + 1; #Generate the NETMAP file opendir (DIR,'/sys/class/net/') or die "open failed : $!n"; while (defined($dir = readdir(DIR))) { if ($dir =~ m/eth/) { print "Interface $dir found in /sys/class/net n"; open NETMAP, ">>$file"; $k = $count / 4; if (($k =~ /^d+$/) && ($k != 0)) { $i++; $j = 0; } print NETMAP "$local_id:$i/$j",'@box'," $pseudo_id:0/0",'@box'," n"; close NETMAP; $count++; $j++; $pseudo_id++; } } close (DIR)