50
ck [1] -> Print('Bad Grid header received', TIMESTAMP true, NBYTES 166) -> Discard;
};
elementclass GridLoad {
// push, no input
// DATASIZE should be the size of the desired UDP packet (including
// ethernet, Grid, and IP headers), plus 2 for alignment. It must
// be at least 120. Most of this is stripped off to be re-used
// later, avoiding expensive pushes in the UDP/IP and Grid
// encapsulation.
src :: InfiniteSource(ACTIVE false, DATASIZE 120)
-> Strip(112) // 14 + 60 + 8 + 20 + 8 + 2 = 112
// (eth + grid + grid_encap + ip + udp + 2 for alignment)
-> seq :: IncrementSeqNo(FIRST 0, OFFSET 0)
-> SetIPAddress(me)
-> StoreIPAddress(4)
-> udp :: UDPIPEncap(me, 1111, 0.0.0.0, 8021)
-> count :: Counter
-> tr :: TimeRange
-> output;
ph :: PokeHandlers;
}
ls2 :: Idle;
ls :: LinkStat(ETH me:eth, SIZE 148 );
metric :: HopcountMetric();
//this is not a gateway
to_gateway :: GridGatewayInfo(nb, false);
nb :: DSDVRouteTable(60000, 15000, 7500, 1000,
me:eth, me:ip,
MAX_HOPS 100,
METRIC metric,
VERBOSE false,
GW to_gateway
);
grid_demux :: Classifier(19/03, // encapsulated (data) packets
19/02); // route advertisement packets
arp_demux :: Classifier(12/0806 20/0001, // arp queries
12/0800); // IP packets
// handles IP packets with no extra encapsulation
ip_demux :: IPClassifier(dst host me, // ip for us
dst net me/24); // ip for Grid network
Comentarios a estos manuales