]> git.llucax.com Git - z.facultad/75.74/practicos.git/blobdiff - practicas/pipi/src/routetable.h
No se crea más la cola porque la crea el mismo DevQue.
[z.facultad/75.74/practicos.git] / practicas / pipi / src / routetable.h
index 2fe158604005e871ab0a264d722cef09f897735a..d534d168e7e4b7991ecae62319e37a6c3570d8c5 100644 (file)
@@ -4,6 +4,7 @@
 #include "dev.h"
 #include "ipaddr.h"
 #include <map>
+#include <istream>
 
 /// Tabla de ruteo
 struct RouteTable
@@ -13,11 +14,12 @@ struct RouteTable
     struct Route
     {
         IPAddr gateway;
+        unsigned mtu;
         unsigned metric;
         Dev* iface;
-        Route(): gateway(0), metric(0), iface(0) {}
-        Route(const IPAddr& gateway, unsigned metric, Dev& iface):
-            gateway(gateway), metric(metric), iface(&iface) {}
+        Route(): gateway(0), mtu(0), metric(0), iface(0) {}
+        Route(const IPAddr& gateway, unsigned mtu, unsigned metric, Dev& iface):
+            gateway(gateway), mtu(mtu), metric(metric), iface(&iface) {}
     };
 
     /// Tabla
@@ -30,7 +32,7 @@ struct RouteTable
     RouteTable(Dev& default_iface);
 
     /// Agrega ruta
-    void add(const IPAddr& net, const IPAddr& gw, unsigned metric, Dev& iface);
+    void add(const IPAddr& net, const IPAddr& gw, unsigned mtu, unsigned metric, Dev& iface);
 
     /// Borra ruta
     void del(const IPAddr& net);
@@ -40,6 +42,9 @@ struct RouteTable
 
 };
 
+/// Agrega rutas desde un stream de datos con un cierto dispositivo
+void add_routes(RouteTable& rt, std::istream& is, Dev& dev);
+
 #endif // _ROUTETABLE_H_
 
 // vim: set et sw=4 sts=4 :