How simer-deep/cse-160-project-3 works
This is a TinyOS/nesC distance-vector routing project. A command requests a ping; the node routes the ping and reply over learned next hops, while neighbor discovery feeds routing updates. The README also documents poison reverse, route expiry and withdrawal, packet-capacity handling, and a separate flooding path. The Python simulator bindings and command-message adapter are represented as supporting runtime interfaces. Most nesC implementations were not excerpted, so links based on documented behavior cite the README; implementation-level wiring is not inferred.
Main entry points: IPRoutingP.nc IP routing · DVExchangeP.nc DV exchange · SimpleSendP.nc SimpleSend queue · CommandHandlerP.nc Command handler
Components 16
Command and packet control
- Command handler
lib/modules/CommandHandlerP.nc - Command message
includes/CommandMsg.h - Packet format
includes/packet.h - Protocol IDs
includes/protocol.h - Debug channels
includes/channels.h
Routing and discovery
- Neighbor discovery
lib/modules/NeighborDiscoveryP.nc - DV exchange
lib/modules/DVExchangeP.nc - Route state
includes/dv.h - IP routing
lib/modules/IPRoutingP.nc - Flooding
lib/modules/FloodingP.nc
Packet transport
- SimpleSend queue
lib/modules/SimpleSendP.nc - Send buffer item
includes/sendInfo.h
Runtime interfaces
- Command adapter
CommandMsg.py - TOSSIM binding
TOSSIM.py - Socket definitions
includes/socket.h
Other components
- Ping requester
Connections 12
- Ping requester → Command handler: requests ping
README.md - Command handler → IP routing: starts routed ping
README.md - Neighbor discovery → DV exchange: informs neighbors
README.md - DV exchange → Route state: updates routes
README.md - IP routing → Route state: looks up next hop
README.md - IP routing → SimpleSend queue: submits packets
README.md - DV exchange → SimpleSend queue: sends updates
README.md - SimpleSend queue → Send buffer item: queues packet copies
README.md - IP routing → IP routing: routes replies
README.md - IP routing → Flooding: does not flood
README.md - Command adapter → Command message: encodes commands
CommandMsg.py - TOSSIM binding → Command adapter: exposes simulator