]> git.sesse.net Git - nms/blob - clients/zyxelng.pl
More zyxelng fixes.
[nms] / clients / zyxelng.pl
1 #!/usr/bin/perl -w
2 #
3 #
4
5 use strict;
6 use lib '../include';
7
8 use Data::Dumper;
9
10 use nms qw(switch_connect switch_exec);
11 use ios;
12
13 #my $t = nms::ios_connect('62.148.36.12', 'c', 'c', 'c');
14
15 #print STDERR "No such network 192.168.1.0\n" if nms::ios_getroute($t, "192.168.1.0") == 0;
16
17 #nms::ios_close($t);
18
19 my $one = 0;
20
21 my $switchip;
22 #$switchip = "87.76.250.226" if $one;
23 $switchip = "192.168.2.150" if $one;
24 $switchip = "192.168.1.1" unless $one;
25 my $switch = switch_connect($switchip);
26
27 my $cmds1 = <<EOF
28 sys hostname es-3024
29 ip igmpsnoop enable
30
31 sys sw vlan type 802.1q
32 sys sw vlan1q svlan setentry MNGT 248 25 fixed tag
33 sys sw vlan1q svlan active 248
34 sys sw vlan1q svlan setentry e01-1sw 1 25 fixed untag
35
36 sys sw vlan1q svlan setentry MNGT 248 1 forbidden tag
37 sys sw vlan1q svlan setentry MNGT 248 2 forbidden tag
38 sys sw vlan1q svlan setentry MNGT 248 3 forbidden tag
39 sys sw vlan1q svlan setentry MNGT 248 4 forbidden tag
40 sys sw vlan1q svlan setentry MNGT 248 5 forbidden tag
41 sys sw vlan1q svlan setentry MNGT 248 6 forbidden tag
42 sys sw vlan1q svlan setentry MNGT 248 7 forbidden tag
43 sys sw vlan1q svlan setentry MNGT 248 8 forbidden tag
44 sys sw vlan1q svlan setentry MNGT 248 9 forbidden tag
45 sys sw vlan1q svlan setentry MNGT 248 10 forbidden tag
46 sys sw vlan1q svlan setentry MNGT 248 11 forbidden tag
47 sys sw vlan1q svlan setentry MNGT 248 12 forbidden tag
48 sys sw vlan1q svlan setentry MNGT 248 13 forbidden tag
49 sys sw vlan1q svlan setentry MNGT 248 14 forbidden tag
50 sys sw vlan1q svlan setentry MNGT 248 15 forbidden tag
51 sys sw vlan1q svlan setentry MNGT 248 16 forbidden tag
52 sys sw vlan1q svlan setentry MNGT 248 17 forbidden tag
53 sys sw vlan1q svlan setentry MNGT 248 18 forbidden tag
54 sys sw vlan1q svlan setentry MNGT 248 19 forbidden tag
55 sys sw vlan1q svlan setentry MNGT 248 20 forbidden tag
56 sys sw vlan1q svlan setentry MNGT 248 21 forbidden tag
57 sys sw vlan1q svlan setentry MNGT 248 22 forbidden tag
58 sys sw vlan1q svlan setentry MNGT 248 23 forbidden tag
59 sys sw vlan1q svlan setentry MNGT 248 24 forbidden tag
60 EOF
61 ;
62 #
63 foreach (split(/\n+/, $cmds1)) {
64         print "Sending: '$_'\n";
65         switch_exec($_, $switch);
66 }
67
68 my $cmd;
69 $cmd = "ip ifconfig swif0 192.168.1.1/24" if $one;
70 $cmd = "ip ifconfig swif0 192.168.2.150/24" unless $one;
71 print "Sending '$cmd'\n";
72 my $pid = fork();
73 if ($pid == 0) {
74         print "Sending ifconfig.. $cmd\n";
75         switch_exec($cmd, $switch);
76         exit 0;
77 } else {
78         #switch_exec($cmd, $switch, 1);
79         print "Sleeping...\n";
80         sleep 1;
81 }
82 $switch->close();
83 print "Reconnecting... ";
84 $switchip = "192.168.1.1" if $one;
85 $switchip = "192.168.2.150" unless $one;
86 autoflush STDOUT 1;
87 print "Connecting to: $switchip...\n";
88 my $i = 1;
89 while(1) {
90         $switch = switch_connect($switchip);
91         
92         #print (defined($switch)? $switch : "foo") ." <---- switch\n";
93         if (defined($switch) || $switch) {
94                 last;
95         }
96         printf("Waited $i seconds...\r");
97         $i++;
98         sleep 1;
99 }
100 print "\n";
101
102 print $switch."\n";
103 $cmd = "sys sw vlan1q svlan cpu 248";
104 print "Sending '$cmd'\n";
105 #print "XXX: No we did not...";
106 #print Dumper($switch->cmd("ip ifconfig"));
107 #print Dumper($switch->cmd("ip route status"));
108 switch_exec($cmd, $switch, 1);
109 $switch->close();