I see, thanks!

I miss the fact that the xdp prog is attached to struct e1000_adapter
*adapter, which is different per netdev, and thus different per
ifindex.


On Mon, Aug 22, 2016 at 4:47 PM, Alexei Starovoitov
<[email protected]> wrote:
> On Mon, Aug 22, 2016 at 4:26 PM, William Tu via iovisor-dev
> <[email protected]> wrote:
>> Hi,
>>
>> I'm not sure if we discussed this before, but I'm thinking that if I
>> have two identical NICs (ex: two e1000 cards with ifindex 1 and 2),
>> and I load the e1000.ko driver. At userspace, I run
>> $ /samples/bpf/xdp 1
>> $ /samples/bpf/xdp 2
>>
>> Then the latter XDP BPF actually overwrites the former because they
>> share the same driver. And there is no way to trigger different XDP
>> BPFs from different input ports. For example, if I want to return
>> XDP_DROP for packet from ifindex 1, and return XDP_PASS for packets
>> from ifindex 2. Am I understand correct?
>
> why do you see it's being overwritten?
> How did you test that?
>
> two ifindex = two different netdev.
> And in case of e1k:
> struct e1000_adapter *adapter = netdev_priv(netdev);
> adapter->prog
> so we can have different programs on different netdevs
> even when they're both e1k, mlx or anything else.
_______________________________________________
iovisor-dev mailing list
[email protected]
https://lists.iovisor.org/mailman/listinfo/iovisor-dev

Reply via email to