[Click] click-viz error
Nicola Arnoldi
nicola.arnoldi at dit.unitn.it
Sat Dec 16 15:48:43 EST 2006
Dear all,
I am developing a new scheduler using click.
In order to test it I tried to plot a graph of my router configuration.
However I encounter the following error trying to use the command
'click-flatten demo.click | click-viz | dot -Tpng >demo.png'
I attach you the lines from my terminal.
~/click/tools/click-flatten/click-flatten test/file.test |
~/click/tools/click-viz
digraph stdin {
node [shape=record,height=.1]
edge [arrowhead=normal,arrowtail=dot]
Traceback (most recent call last):
File "/home/nicola/click/tools/click-viz", line 102, in ?
if m.lastgroup != "end":
AttributeError: 'NoneType' object has no attribute 'lastgroup'
I send you as an attachment the configuration I am trying to plot.
Thanks for any help!
-------------- next part --------------
require('roofnet');
rates :: AvailableRates(DEFAULT 11 22 108, 00:0F:B5:AF:72:CF 11 22 108);
elementclass sr2 {
$sr2_ip, $sr2_nm, $wireless_mac, $gateway, $probes|
arp :: ARPTable();
lt :: LinkTable(IP $sr2_ip);
gw :: SR2GatewaySelector(ETHTYPE 0x062c,
IP $sr2_ip,
ETH $wireless_mac,
LT lt,
ARP arp,
PERIOD 15,
GW $gateway);
gw -> SR2SetChecksum -> [0] output;
set_gw :: SR2SetGateway(SEL gw);
es :: SR2ETTStat(ETHTYPE 0x0641,
ETH $wireless_mac,
IP $sr2_ip,
PERIOD 30000,
TAU 300000,
ARP arp,
PROBES $probes,
ETT metric,
RT rates);
metric :: SR2ETTMetric(LT lt);
forwarder :: SR2Forwarder(ETHTYPE 0x0643,
IP $sr2_ip,
ETH $wireless_mac,
ARP arp,
LT lt);
querier :: SR2Querier(ETH $wireless_mac,
SR forwarder,
LT lt,
ROUTE_DAMPENING true,
TIME_BEFORE_SWITCH 5,
DEBUG false);
query_forwarder :: SR2MetricFlood(ETHTYPE 0x0644,
IP $sr2_ip,
ETH $wireless_mac,
LT lt,
ARP arp,
DEBUG false);
query_responder :: SR2QueryResponder(ETHTYPE 0x0645,
IP $sr2_ip,
ETH $wireless_mac,
LT lt,
ARP arp,
DEBUG false);
gw_reply :: SR2GatewayResponder(SEL gw,
ETHTYPE 0x0645,
IP $sr2_ip,
ETH $wireless_mac,
ARP arp,
DEBUG false,
LT lt,
PERIOD 15);
//PRIORITY SCHEDULER
prio_class :: IPClassifier((ip tos != 40 and ip tos != 72 and ip tos != 104), ip tos 40, ip tos 72, ip tos 104);
wrr_sched :: WRRSched (1,2,4,6);
gw_reply -> SR2SetChecksum -> [1] output;
prio_class [0] -> NotifierQueue(1000) -> [0] wrr_sched;
prio_class [1] -> NotifierQueue(1000) -> [1] wrr_sched;
prio_class [2] -> NotifierQueue(1000) -> [2] wrr_sched;
prio_class [3] -> NotifierQueue(1000) -> [3] wrr_sched;
wrr_sched -> [2] output;
//-------------------------------------------
query_responder -> SR2SetChecksum -> [0] output;
query_forwarder -> SR2SetChecksum -> [0] output;
query_forwarder [1] -> query_responder;
data_ck :: SR2SetChecksum()
input [1]
-> host_cl :: IPClassifier(dst net $sr2_ip mask $sr2_nm,
-)
-> querier
-> data_ck;
host_cl [1] -> [0] set_gw [0] -> querier;
forwarder[0]
-> dt ::DecIPTTL
-> data_ck
-> prio_class;
dt[1]
-> ICMPError($sr2_ip, timeexceeded, 0)
-> querier;
// queries
querier [1] -> [1] query_forwarder;
es -> SetTimestamp() -> [1] output;
forwarder[1] //ip packets to me
-> SR2StripHeader()
-> CheckIPHeader(CHECKSUM false)
-> from_gw_cl :: IPClassifier(src net $sr2_ip mask $sr2_nm,
-)
-> [3] output;
from_gw_cl [1] -> [1] set_gw [1] -> [3] output;
input [0]
-> ncl :: Classifier(
12/0643 , //sr2_forwarder
12/0644 , //sr2
12/0645 , //replies
12/0641 , //sr2_es
12/062c , //sr2_gw
);
ncl[0] -> SR2CheckHeader() -> [0] forwarder;
ncl[1] -> SR2CheckHeader() -> query_forwarder
ncl[2] -> SR2CheckHeader() -> query_responder;
ncl[3] -> es;
ncl[4] -> SR2CheckHeader() -> gw;
}
control :: ControlSocket("TCP", 7777);
chatter :: ChatterSocket("TCP", 7778);
elementclass LinuxIPHost {
$dev, $ip, $nm |
input -> KernelTun($ip/$nm, MTU 1100, DEV_NAME $dev)
-> MarkIPHeader(0)
-> CheckIPHeader(CHECKSUM false)
-> output;
}
elementclass SniffDevice {
$device, $promisc|
from_dev :: FromDevice($device,
PROMISC true)
-> output;
input -> to_dev :: ToDevice($device);
}
sniff_dev :: SniffDevice(ath0, true);
sched :: PrioSched()
-> sniff_dev;
route_q :: FullNoteQueue(10)
-> [0] sched;
srcr2 :: sr2(5.175.114.207, 255.0.0.0, 00:0F:B5:AF:72:CF, false,
"2 60 2 1100");
srcr2_host :: LinuxIPHost(srcr2, 5.175.114.207, 255.0.0.0)
-> srcr2_cl :: IPClassifier(dst net 10.0.0.0/8, -);
ap_to_srcr2 :: SRDestCache();
srcr2_cl [0] -> [0] ap_to_srcr2 [0] -> [1] srcr2;
srcr2_cl [1] -> [1] srcr2;
srcr2 [0] -> route_q; // queries, replies
srcr2 [1] -> route_q; // bcast_stats
srcr2 [2] -> [1] sched; // data
srcr2 [3] -> srcr2_cl2 :: IPClassifier(src net 10.0.0.0/8, -); //data to me
srcr2_cl2 [0] -> [1] ap_to_srcr2 [1] -> srcr2_host;
srcr2_cl2 [1] -> srcr2_host; // data to me
sniff_dev
-> blanck_decap:: BlankDecap()
-> srcr2;
More information about the click
mailing list