Beispiel #1
0
/*****************************************************************************
 * Open the "real" network devices. Return the number of opened interfaces.
 *****************************************************************************/
int open_network_devices(int promisc, char *mac)
{
#if 11  // 2012-05 sunray, added

	struct net_device *dev = devs[0];

    memcpy(dev->dev_addr,mac,6);

	DEBUG(ANKH_DEBUG_INIT, "opening '%s',device name '%s'\n", dev->name,dev->dev_name);

    // beam us to promiscuous mode, so that we can receive packets that
	// are not meant for the NIC's MAC address --> we need that, because
	// ORe clients have different MAC addresses
	if (promisc && netdev_set_promisc(dev) == 0)
        printf("set interface to promiscuous mode.\n");

    dev->net_open(dev);
    netdev_add(dev);
    //DEBUG(ANKH_DEBUG_INIT, "leave open_network_devices()\n");
    return 1;
#else
	struct net_device *dev;
	struct net *net;
	int err = 0, cnt = 0;

	DEBUG(ANKH_DEBUG_INIT, "%s() \n", __func__);

	for_each_net(net) {
		for_each_netdev(net, dev)
		{
			DEBUG(ANKH_DEBUG_INIT, "opening %s\n", dev->name);

			// beam us to promiscuous mode, so that we can receive packets that
			// are not meant for the NIC's MAC address --> we need that, because
			// ORe clients have different MAC addresses
			if (promisc && netdev_set_promisc(dev) == 0)
					DEBUG(ANKH_DEBUG_INIT, "set interface to promiscuous mode.\n");

			err = dev_open(dev);
			if (err)
			{
				DEBUG(ANKH_DEBUG_INIT, "error opening %s : %d\n", dev->name, err);
				return err;
			}
			else // success
				netdev_add(dev);

		cnt++;
		//xmit_lock_add(dev->name);
		}
	}
Beispiel #2
0
/*****************************************************************************
 * Open the "real" network devices. Return the number of opened interfaces.
 *****************************************************************************/
int open_network_devices(int promisc)
{
	struct net_device *dev;
	struct net *net;
	int err = 0, cnt = 0;

	DEBUG(ANKH_DEBUG_INIT, "%s() \n", __func__);

	for_each_net(net) {
		for_each_netdev(net, dev)
		{
			DEBUG(ANKH_DEBUG_INIT, "opening %s\n", dev->name);

			// beam us to promiscuous mode, so that we can receive packets that
			// are not meant for the NIC's MAC address --> we need that, because
			// ORe clients have different MAC addresses
			if (promisc && netdev_set_promisc(dev) == 0)
					DEBUG(ANKH_DEBUG_INIT, "set interface to promiscuous mode.\n");

			err = dev_open(dev);
			if (err)
			{
				DEBUG(ANKH_DEBUG_INIT, "error opening %s : %d\n", dev->name, err);
				return err;
			}
			else // success
				netdev_add(dev);

		cnt++;
		//xmit_lock_add(dev->name);
		}
	}