6 #include "routetable.h"
18 /// Dispositivo de logging
21 /// Cola para forwardear paquetes
24 /// Dispositivo de logging
28 IPOut(const IPAddr& ip, RouteTable& rtable, Dev& forward_que,
29 std::ostream& log = std::cout);
31 /// Descarta un paquete
32 void drop(const std::string& msg, const std::string& buf);
33 void drop(const std::string& msg, const IPHeader& iph);
35 /// Envía un paquete IP a armar (y forwardea los encolados, de haber)
36 bool send(const std::string& data, uint8_t proto, IPAddr dst,
37 IPAddr src = 0, bool df = 0, uint8_t ttl = 64, uint16_t id = 0)
38 throw (std::runtime_error);
40 /// Envía un paquete IP ya armado
41 bool send(IPHeader iph, std::string data) throw (std::runtime_error);
43 /// Realiza el forwarding de paquetes (en un loop infinito)
44 void forward_loop() throw (std::runtime_error);
46 /// Obtiene un identificador para el paquete
47 uint16_t get_id() const;
49 /// Se fija si hay paquetes a forwardear (y devuelve cuantos hay)
50 unsigned to_forward();
52 // Nada de andar copiando...
55 IPOut& operator=(const IPOut&);
61 // vim: set et sw=4 sts=4 :