#include "ipout.h"
#include "ipaddr.h"
#include "routetable.h"
-#include "dev.h"
+#include "devque.h"
#include <iostream>
#include <fstream>
#include <sstream>
// Uso: ./test_ipout ip dst mtu routes_file proto queue_id
-void add_routes(RouteTable& rt, std::istream& is, Dev& dev);
+void add_routes(RouteTable& rt, std::istream& is, size_t mtu, Dev& dev);
int main(int argc, char* argv[])
{
IPAddr dst("10.10.10.1");
unsigned mtu = 25;
unsigned proto = 0;
- key_t queue_id = DEV_DEFAULT_KEY;
+ key_t queue_id = DEVQUE_DEFAULT_KEY;
std::string fname = "route.txt";
if (argc > 1)
addr = IPAddr(argv[1]);
int que_id = msgget(queue_id, IPC_CREAT | 0666); assert(que_id != -1);
que_id = msgget(queue_id+1, IPC_CREAT | 0666); assert(que_id != -1);
std::ifstream ifs(fname.c_str()); assert(ifs);
- Dev dev(addr, mtu, queue_id);
- Dev fwque(addr, mtu, queue_id+1);
+ DevQue dev(addr, mtu, queue_id);
+ DevQue fwque(addr, DEV_MAX_MTU, queue_id+1);
RouteTable table(dev);
- add_routes(table, ifs, dev);
- IPOut ipout(addr, table, fwque);
+ add_routes(table, ifs, mtu, dev);
+ IPOut ipout(addr, table, fwque, std::cerr);
std::string msg;
while (std::getline(std::cin, msg))
{
return 0;
}
-void add_routes(RouteTable& rt, std::istream& is, Dev& dev)
+void add_routes(RouteTable& rt, std::istream& is, size_t mtu, Dev& dev)
{
std::string line;
while (std::getline(is, line))
iss >> net >> gw >> metric;
if (net == "0") net = "0.0.0.0";
if (gw == "0") gw = "0.0.0.0";
- rt.add(net.c_str(), gw.c_str(), metric, dev);
+ rt.add(net, gw, mtu, metric, dev);
}
}