2 open PATCHLIST, "<patchlist.txt"
3 or die "patchlist.txt: $!";
8 my ($name, $distro, $port) = split / /;
10 $name =~ /e(\d+)-(\d+)/;
11 my ($row, $switch) = ($1, $2);
15 $ip = "87.76." . ($row) . ".1";
16 } elsif ($switch == 2) {
17 $ip = "87.76." . ($row) . ".65";
18 } elsif ($switch == 3) {
19 $ip = "87.76." . ($row) . ".129";
20 } elsif ($switch == 4) {
21 $ip = "87.76." . ($row + 1) . ".1";
22 } elsif ($switch == 5) {
23 $ip = "87.76." . ($row + 1) . ".65";
24 } elsif ($switch == 6) {
25 $ip = "87.76." . ($row + 1) . ".129";
28 my $vlan = "$row$switch";
29 my $ipv6 = sprintf "F%02u%u", $row, $switch;
31 $distros{$distro} .= <<"EOF";
35 default interface vlan $vlan
38 ip address $ip 255.255.255.192
39 ip directed-broadcast 10
40 ip helper-address 87.76.254.2
42 ip access-group great-wall-of-tg in
43 ipv6 address 2001:16D8:FFFF:${ipv6}::1/64
49 default interface $port
52 switchport mode access
53 switchport access vlan $vlan
55 spanning-tree portfast
56 spanning-tree bpduguard enable
58 storm-control broadcast level 2
64 for my $distro (keys %distros) {
65 open DISTRO, ">$distro-config"
66 or die "$distro-config: $!";
67 print DISTRO $distros{$distro};