On Tuesday, February 11, 2014 8:04:41 PM UTC+1, don wrote:

I can bring up the Ethernet adapter in promisc mode just fine. Though I 
> do not use Ubuntu or Debian.. 
>
> Should be as simple as 
>
> ip link set dev eth0 promisc on 
>
> Or the equivilent for your OS. If you're on systemd you can easily set 
> it to do this at boot with 
> ExecStart=/usr/bin/ip link set dev %i promisc on 
>
> this brings you from output like this.. snipped 
> eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 
>
> to this with it on.. snipped 
> eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfif 
>
>
> Have no issues with Kernel or anything. Tested on 3.8.13 and 3.12.8 with 
> Arch 
>


That's great news :) I'll try with Arch and post feedback 
(http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black).

I've tried with both of those kernel versions, though it was pre-compiled 
rcn <https://rcn-ee.net/> Ubuntu image. Actually, when i enter promisc 
mode, ip output shows me PROMISC flag on, but kernel log prints out that 
the same one is ignored :) 
As it turned out, i've found snippet of source code which actually confirms 
it (but it's also one year old).

static void cpsw_ndo_change_rx_flags(struct net_device *ndev, int flags)
{
        /*
         * The switch cannot operate in promiscuous mode without substantial
         * headache.  For promiscuous mode to work, we would need to put the
         * ALE in bypass mode and route all traffic to the host port.
         * Subsequently, the host will need to operate as a "bridge", learn,
         * and flood as needed.  For now, we simply complain here and
         * do nothing about it :-)
         */
        if ((flags & IFF_PROMISC) && (ndev->flags & IFF_PROMISC))
                dev_err(&ndev->dev, "promiscuity ignored!\n");

        /*
         * The switch cannot filter multicast traffic unless it is configured
         * in "VLAN Aware" mode.  Unfortunately, VLAN awareness requires a
         * whole bunch of additional logic that this driver does not implement
         * at present.
         */
        if ((flags & IFF_ALLMULTI) && !(ndev->flags & IFF_ALLMULTI))
                dev_err(&ndev->dev, "multicast traffic cannot be filtered!\n");
}






-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to