示例#1
0
	virtual void SetUp()
	{
		host1 = new Host("TestHost1", 2, &netSystem);
		host2 = new Host("TestHost2", 2, &netSystem);

		uint8_t mac1[6] = {0xBC,0xBC,0xBC,0xBC,0xBC,0xBC};
		uint8_t mac1_2[6] = {0xCB,0xCB,0xCB,0xCB,0xCB,0xCB};
		uint8_t mac2[6] = {0xCD,0xCD,0xCD,0xCD,0xCD,0xCD};
		uint8_t mac2_2[6] = {0xDC,0xDC,0xDC,0xDC,0xDC,0xDC};
		uint8_t ip1[4] = {192,168,0,7};
		uint8_t ip1_2[4] = {192,168,0,8};
		uint8_t ip2[4] = {10,0,1,4};
		uint8_t ip2_2[4] = {10,0,1,5};
		host1->setMACAddr(mac1, 0);
		host1->setMACAddr(mac1_2, 1);
		host1->setARPTable(mac2, ip2);
		host1->setARPTable(mac2_2, ip2_2);
		host1->setIPAddr(ip1, 0);
		host1->setIPAddr(ip1_2, 1);
		host1->setRoutingTable(ip2, 16, 0);
		host1->setRoutingTable(ip2_2, 16, 1);

		host2->setMACAddr(mac2, 0);
		host2->setMACAddr(mac2_2, 1);
		host2->setARPTable(mac1, ip1);
		host2->setARPTable(mac1_2, ip1_2);
		host2->setIPAddr(ip2, 0);
		host2->setIPAddr(ip2_2, 1);
		host2->setRoutingTable(ip1, 16, 0);
		host2->setRoutingTable(ip1_2, 16, 1);

		host1->getPort(0)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));
		host1->getPort(1)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));
		host2->getPort(0)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));
		host2->getPort(1)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));

		switchingHub = new Switch("Switch1", &netSystem);
		switchingHub->addPort(host1->getPort(0));
		switchingHub->addPort(host1->getPort(1));
		switchingHub->addPort(host2->getPort(0));
		switchingHub->addPort(host2->getPort(1));

		switchingHub->addMACEntry(host1->getPort(0), mac1);
		switchingHub->addMACEntry(host1->getPort(1), mac1_2);
		switchingHub->addMACEntry(host2->getPort(0), mac2);
		switchingHub->addMACEntry(host2->getPort(1), mac2_2);


		ethernet1 = new Ethernet(host1);
		ethernet2 = new Ethernet(host2);
		ipv4_1 = new IPv4(host1);
		ipv4_2 = new IPv4(host2);

		interface = Target::allocate(host1);
		interface2 = TCPSolutionProvider::allocate(host2, false, false, false);
		interface->initialize();
		interface2->initialize();
	}
示例#2
0
	virtual void SetUp()
	{
		prev_log = NetworkLog::defaultLevel;
		NetworkLog::defaultLevel |= (
				//(1 << NetworkLog::SYSCALL_RAISED) |
				//(1 << NetworkLog::SYSCALL_FINISHED) |
				//(1 << NetworkLog::PACKET_ALLOC) |
				//(1 << NetworkLog::PACKET_CLONE) |
				//(1 << NetworkLog::PACKET_FREE) |
				//(1 << NetworkLog::PACKET_TO_MODULE) |
				//(1 << NetworkLog::PACKET_FROM_MODULE) |
				//(1 << NetworkLog::PACKET_TO_HOST) |
				//(1 << NetworkLog::PACKET_FROM_HOST) |
				//(1 << NetworkLog::PACKET_QUEUE) |
				//(1 << NetworkLog::TCP_LOG) |
				0UL
		);

		client_hosts = new Host*[num_client];
		ethernet_clients = new Ethernet*[num_client];
		ipv4_clients = new IPv4*[num_client];
		interface_clients = new HostModule*[num_client];

		server_host = new Host("CongestionServer", 1, &netSystem);

		uint8_t server_mac[6] = {0xBC,0xBC,0xBC,0xBC,0xBC,0xBC};
		uint8_t server_ip[4] = {192,168,1,7};
		uint8_t server_mask[4] = {192,168,1,0};
		uint8_t client_mask[4] = {10,0,1,0};

		ethernet_server = new Ethernet(server_host);
		ipv4_server = new IPv4(server_host);

		server_host->setMACAddr(server_mac, 0);
		server_host->setIPAddr(server_ip, 0);
		server_host->setRoutingTable(client_mask, 24, 0);
		server_host->getPort(0)->setPropagationDelay(propagationDelay);
		server_host->getPort(0)->setPortSpeed(port_speed);

		interface_server = Adversary::allocate(server_host);
		interface_server->initialize();

		switchingHub = new Switch("Switch1", &netSystem);
		switchingHub->addPort(server_host->getPort(0));
		switchingHub->addMACEntry(server_host->getPort(0), server_mac);

		char name_buf[128];
		for(int k=0; k<num_client; k++)
		{
			snprintf(name_buf, sizeof(name_buf), "CongestionClient%d", k);
			client_hosts[k] = new Host(name_buf, 2, &netSystem);
			ethernet_clients[k] = new Ethernet(client_hosts[k]);
			ipv4_clients[k] = new IPv4(client_hosts[k]);
			interface_clients[k] = Target::allocate(client_hosts[k]);
			interface_clients[k]->initialize();

			uint8_t client_ip[4] = {10,0,1,10};
			client_ip[3] += k;
			uint8_t client_mac[6] = {0xEE,0xEE,0xEE,0xEE,0xEE,0x00};
			client_mac[5] += k;

			client_hosts[k]->setMACAddr(client_mac, 0);
			client_hosts[k]->setIPAddr(client_ip, 0);
			client_hosts[k]->setRoutingTable(server_mask, 24, 0);
			client_hosts[k]->setARPTable(server_mac, server_ip);
			client_hosts[k]->getPort(0)->setPropagationDelay(propagationDelay);
			client_hosts[k]->getPort(0)->setPortSpeed(port_speed);

			server_host->setARPTable(client_mac, client_ip);

			switchingHub->addPort(client_hosts[k]->getPort(0));
			switchingHub->addMACEntry(client_hosts[k]->getPort(0), client_mac);
		}

		switchingHub->setLinkSpeed(port_speed);
		switchingHub->setQueueSize(64);

		const ::testing::TestInfo* const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
		std::string file_name(test_info->name());
		file_name.append(".pcap");
		switchingHub->enablePCAPLogging(file_name, 64);

	}
示例#3
0
	virtual void SetUp()
	{
		host1 = new Host("TestHost1", 2, &netSystem);
		host2 = new Host("TestHost2", 2, &netSystem);

		uint8_t mac1[6] = {0xBC,0xBC,0xBC,0xBC,0xBC,0xBC};
		uint8_t mac1_2[6] = {0xCB,0xCB,0xCB,0xCB,0xCB,0xCB};
		uint8_t mac2[6] = {0xCD,0xCD,0xCD,0xCD,0xCD,0xCD};
		uint8_t mac2_2[6] = {0xDC,0xDC,0xDC,0xDC,0xDC,0xDC};
		uint8_t ip1[4] = {192,168,0,7};
		uint8_t ip1_2[4] = {192,168,0,8};
		uint8_t ip2[4] = {10,0,1,4};
		uint8_t ip2_2[4] = {10,0,1,5};
		host1->setMACAddr(mac1, 0);
		host1->setMACAddr(mac1_2, 1);
		host1->setARPTable(mac2, ip2);
		host1->setARPTable(mac2_2, ip2_2);
		host1->setIPAddr(ip1, 0);
		host1->setIPAddr(ip1_2, 1);
		host1->setRoutingTable(ip2, 16, 0);
		host1->setRoutingTable(ip2_2, 16, 1);

		host2->setMACAddr(mac2, 0);
		host2->setMACAddr(mac2_2, 1);
		host2->setARPTable(mac1, ip1);
		host2->setARPTable(mac1_2, ip1_2);
		host2->setIPAddr(ip2, 0);
		host2->setIPAddr(ip2_2, 1);
		host2->setRoutingTable(ip1, 16, 0);
		host2->setRoutingTable(ip1_2, 16, 1);

		host1->getPort(0)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));
		host1->getPort(1)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));
		host2->getPort(0)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));
		host2->getPort(1)->setPropagationDelay(TimeUtil::makeTime(1, TimeUtil::MSEC));

		switchingHub = new Switch("Switch1", &netSystem);
		switchingHub->addPort(host1->getPort(0));
		switchingHub->addPort(host1->getPort(1));
		switchingHub->addPort(host2->getPort(0));
		switchingHub->addPort(host2->getPort(1));
		switchingHub->setQueueSize(16);

		switchingHub->addMACEntry(host1->getPort(0), mac1);
		switchingHub->addMACEntry(host1->getPort(1), mac1_2);
		switchingHub->addMACEntry(host2->getPort(0), mac2);
		switchingHub->addMACEntry(host2->getPort(1), mac2_2);

		const ::testing::TestInfo* const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
		std::string file_name(test_info->name());
		file_name.append(".pcap");
		switchingHub->enablePCAPLogging(file_name);

		ethernet1 = new Ethernet(host1);
		ethernet2 = new Ethernet(host2);
		ipv4_1 = new IPv4(host1);
		ipv4_2 = new IPv4(host2);

		interface = Target::allocate(host1);
		interface2 = Adversary::allocate(host2);
		interface->initialize();
		interface2->initialize();
	}