49
};
elementclass ToGridDev {
// push, no output
$dev |
input -> cl :: Classifier(12/7ffe, // LinkStat 1
12/7ffd, // LinkStat 2
19/02,
19/03);
prio :: PrioSched;
cl [0] -> probe_counter :: Counter -> probe_q :: Queue(5) -> [0] prio;
cl [1] -> probe_counter;
cl [2] -> route_counter :: Counter -> route_q :: Queue(5) -> FixupGridHeaders(li) ->
[1] prio;
cl [3] -> data_counter :: Counter -> data_q :: Queue(5)
-> data_counter_out :: Counter
-> tr :: TimeRange
-> lr :: LookupLocalGridRoute2(me:eth, me:ip, nb)
-> Print(lr->)
-> FixupGridHeaders(li)
-> data_counter_out2 :: Counter
-> tr2 :: TimeRange
-> [2] prio;
prio
-> dev_counter :: Counter
-> t :: PullTee
-> ToDevice($dev);
t [1] -> SetTimestamp -> ToHostSniffers($dev);
};
elementclass FromGridDev {
// push, no input
// `Grid' packets on first output
// `LinkStat' packets on second output
$dev, $mac |
FromDevice($dev, PROMISC false)
-> t :: Tee
-> HostEtherFilter($mac, DROP_OWN true)
-> cl :: Classifier(12/7fff, 12/7ffe, 12/7ffd, -);
cl [0] // `Grid' packets
-> ck :: CheckGridHeader
-> [0] output;
cl [1] // `LinkStat 1' packets
-> [1] output;
cl [2] // `LinkStat 2' packets
-> [1] output;
cl [3] // everything else
-> [2] output;
t [1] -> ToHostSniffers($dev);
Comentarios a estos manuales