Exemplo n.º 1
0
int main(int argc, char *argv[])
{
    (void) argc;
    (void) argv;

    ipv4();
    ipv6();

    std::cout << "Ok\n";

    return 0;
}
Exemplo n.º 2
0
lmp_ipcc::IPCC_ptr NetworkIF_i::getIPCC(
  ::CORBA::Long remoteAddress,
  ::CORBA::Short remotePortNumber)
{
  boost::asio::ip::address_v4  ipv4(remoteAddress);
  boost::asio::ip::udp::endpoint remote_endpoint(ipv4, remotePortNumber);
  IPCCByRemoteEndPointMap::const_iterator ipccIter = m_IPCCs.find(remote_endpoint);
  if (ipccIter != m_IPCCs.end())
  {
    return ipccIter->second;
  }
  throw lmp_netif::No_Such_Entity();
}
Exemplo n.º 3
0
lmp_ipcc::IPCC_ptr NetworkIF_i::createIPCC(
  ::CORBA::Long   remoteAddress,
  ::CORBA::Short  remotePortNumber)
{
  boost::asio::ip::address_v4  ipv4(remoteAddress);
  boost::asio::ip::udp::endpoint remote_endpoint(ipv4, remotePortNumber);

  IPCCByRemoteEndPointMap::const_iterator ipccIter = m_IPCCs.find(remote_endpoint);
  if (ipccIter == m_IPCCs.end())
  {
    lmp::cc::IpccMsgReceiveIF* ipccPtr =
      m_msgHandler.createIpcc(remote_endpoint, m_networkIfProxy, m_io_context);
    if (ipccPtr)
    {
      lmp::cc::IpccApplicationIF* ipccApplPtr =
        dynamic_cast<lmp::cc::IpccApplicationIF*>(ipccPtr);
      if (ipccApplPtr)
      {
        lmp_ipcc::IPCC_i* servant =
          new lmp_ipcc::IPCC_i(m_POA, m_node, m_networkIfProxy, *ipccApplPtr, m_ipccInDestructionFtor);
        PortableServer::ObjectId *oid = m_POA->activate_object(servant);  delete oid;
        lmp_ipcc::IPCC_ptr ipcc = servant->_this();
        // servant->_remove_ref();
        ipccIter = m_IPCCs.insert(IPCCByRemoteEndPointMap::value_type(remote_endpoint, lmp_ipcc::IPCC::_duplicate(ipcc))).first;
        if (ipccIter != m_IPCCs.end())
        {
          lmp_ipcc::IPCC_ptr ipcc_ptr = ipccIter->second;
          if (ipcc_ptr)
          {
            for (IPCCAdjacencyObserverContainer::const_iterator obsIter = m_ipccAdjacencyObservers.begin();
                obsIter != m_ipccAdjacencyObservers.end();
                ++obsIter)
            {
              if (*obsIter)
              {
                ::lmp_ipcc_adjacency_observer::IPCCAdjacencyObserver_var observer = *obsIter;
                observer->ipccAdjacencyAdded(ipcc_ptr);
              }
            }
          }
          return ipcc_ptr;
        }
      }
    }
  }
  throw lmp_netif::Entity_Already_Exists();
}
Exemplo n.º 4
0
std::unique_ptr<TxPacket> createICMPv4Pkt(SwSwitch* sw,
                                          folly::MacAddress dstMac,
                                          folly::MacAddress srcMac,
                                          VlanID vlan,
                                          folly::IPAddressV4& dstIP,
                                          folly::IPAddressV4& srcIP,
                                          ICMPv4Type icmpType,
                                          ICMPv4Code icmpCode,
                                          uint32_t bodyLength,
                                          BodyFn serializeBody) {
  IPv4Hdr ipv4(srcIP, dstIP, IP_PROTO_ICMP,
               ICMPHdr::SIZE + bodyLength);
  ipv4.computeChecksum();

  ICMPHdr icmp4(icmpType, icmpCode, 0);
  uint32_t pktLen = icmp4.computeTotalLengthV4(bodyLength);

  auto pkt = sw->allocatePacket(pktLen);
  RWPrivateCursor cursor(pkt->buf());
  icmp4.serializeFullPacket(&cursor, dstMac, srcMac, vlan, ipv4,
                               bodyLength, serializeBody);
  return pkt;
}
Exemplo n.º 5
0
int process(char *packet)
{
	struct s_ethernet	*eth;		/* the ethernet header */
	char			*payload;	/* the IP header + packet
						   payload */

	/* parse ethernet header */
	eth     = (struct s_ethernet *) (packet);
	payload = packet + sizeof(struct s_ethernet);

	switch (htons(eth->type)) {
		case ETHERTYPE_IP:
			return ipv4(eth, payload);
		case ETHERTYPE_IPV6:
			return ipv6(eth, payload);
		case ETHERTYPE_ARP:
			log_debug("HW Protocol: ARP");
			return arp(eth, payload);
		default:
			log_debug("HW Protocol: unknown [%d/0x%04x]",
			       htons(eth->type), htons(eth->type));
			return 1;
	}
}
Exemplo n.º 6
0
	static server random() { return ( server( ipv4(192,u8(rand()),u8(rand()),u8(rand())), 28001 ) ); }
Exemplo n.º 7
0
	static ipv4 any() { return ( ipv4( 0, 0, 0, 0 ) ); }