> On 20 Mar 2017, at 20:25, Jon Loeliger <j...@netgate.com> wrote:
> 
> Folks,
> 
> I am trying to understand a bit more about the "host" interface
> for some AF_PACKET interfaces.
> 
> Currently, there is a single API call to create an AF_PACKET interface.
> It simultaneously sets the HW_ADDR (ie, MAC address) of the interface
> to either  user-specified value, or a randomly generated value.
> 
> I'd like to separate the two steps, or at the very least, be able to set
> the MAC address in a separate API call that isn't the initial CREATE call.
> Why?  Imagine the sequence of commands that might look like this:
> 
>     # interface host fred
>     #    mac 11:22:33:44:55:66
>     #    no shutdown
>     # exit
> 
> So, at the time of "interface host fred", we'd like to cause the interface
> to be created, but the MAC isn't really available yet.  Then later, when
> we see the "mac ...." line, we'd like to set, or change, the MAC with the
> new user-supplied value.
> 
> In the case of a "normal" or DPDK interface, the VNET_DEVICE_CLASS
> functions specify a .mac_addr_change_function.  Roughly from
> src/plugins/dpdk/device/device.c lines 774 or so:
> 
>     VNET_DEVICE_CLASS (dpdk_device_class) = {
>         .mac_addr_change_function = dpdk_set_mac_address,
>     };
> 
> That's all well and good.
> 
> Naturally, no such mac_addr_change_function exists for the
> AF_PACKET device class.
> 
> My question is:  Is there a fundamental reason that prevents such
> a function from being written, or is it a case of simply "we just haven't
> gotten to that detail yet”?

If I remember correctly mac_addr_change_function is optional callback
for interfaces which need to do some special work when mac address is changed.
DPDK is such change as we need to call rte_eth_dev_default_mac_addr_set DPDK 
API.
as AF_PACKET doesn’t need to do any special work, it is not defined.

So what are you asking should simply work, have you tried "set interface mac 
address” CLI?


>  The latter case implying that someone
> could actually achieve a MAC addr change on the AF_PACKET
> interface, if an enterprising young engineer were to, say, write a new
> API function to get there.
> 
> So, yeah, I know the actual MAC might not be really important, but
> maybe the user is trying to match some external requirement or so?
> I don't know.
> 
> Thoughts?
> jdl
> 
> _______________________________________________
> vpp-dev mailing list
> vpp-dev@lists.fd.io
> https://lists.fd.io/mailman/listinfo/vpp-dev

_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to