#include "ipin.h"
#include "ipaddr.h"
#include "routetable.h"
+#include "devtcp.h"
#include "devque.h"
#include <iostream>
#include <fstream>
#include <sys/msg.h>
#include <signal.h>
-// Uso: ./test_ipout ip [router forward routes_file queue_id proto]
+// Uso: ./test_ipout ip [router forward routes_file port proto]
void send_loop(IPOut& ipout, unsigned proto);
{
bool router = false;
bool forward = false;
- unsigned proto = 0;
- key_t queue_id = DEVQUE_DEFAULT_KEY;
+ uint8_t proto = 0;
+ uint16_t port = DEVTCP_DEFAULT_PORT;
std::string fname = "route.txt";
if (argc < 2)
{
std::cerr << "Uso: ./test_ipout ip [router forward routes_file "
- "queue_id proto]\n";
+ "port proto]\n";
return 1;
}
IPAddr addr(argv[1]);
if (argc > 4)
fname = argv[4];
if (argc > 5)
- queue_id = atoi(argv[5]);
+ port = atoi(argv[5]);
if (argc > 6)
proto = atoi(argv[6]);
- // Creo colas
- int que_id = msgget(queue_id, IPC_CREAT | 0666); assert(que_id != -1);
- que_id = msgget(DEVQUE_DEFAULT_KEY-1, IPC_CREAT | 0666); assert(que_id != -1);
+ // Creo cola para comunicar el IPIn con IPOut
+ int que_id = msgget(DEVQUE_DEFAULT_KEY-1, IPC_CREAT | 0666); assert(que_id != -1);
// Abro archivo con rutas
std::ifstream ifs(fname.c_str()); assert(ifs);
// Creo medio físico y cola para forwarding
- DevQue dev(addr, queue_id);
+ DevTCP dev(addr, port);
DevQue fwque(addr, DEVQUE_DEFAULT_KEY-1);
// Creo procesos
pid_t pid_send = fork();
IPAddr src, dst;
std::string s = ipin.recv(proto, src, dst);
std::cout << "Recibido '" << s << "' (len " << s.size() << ") de "
- << src << " para " << dst << " (proto = " << proto << ")\n";
+ << src << " para " << dst << " (proto = " << unsigned(proto)
+ << ")\n";
}
return 0;
}
iss >> net >> gw >> mtu >> 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, mtu, dev);
+ rt.add(net, gw, metric, mtu, dev);
}
}