[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [PATCH] clarify net mac commands.
On Mon, May 05, 2014 at 02:21:26PM +0930, Rusty Russell wrote: > > Noticed this was underspecified (and unclear) while creating a patch to > deprecate writable \field{mac}. > > Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Michael S. Tsirkin <mst@redhat.com> > diff --git a/content.tex b/content.tex > index 01ecd1e..4171eff 100644 > --- a/content.tex > +++ b/content.tex > @@ -3340,7 +3340,7 @@ many addresses. > } This table is set using the class > VIRTIO_NET_CTRL_MAC and the command VIRTIO_NET_CTRL_MAC_TABLE_SET. The > command-specific-data is two variable length tables of 6-byte MAC > -addresses. The first table contains unicast addresses, and the second > +addresses (as described in struct virtio_net_ctrl_mac). The first table contains unicast addresses, and the second > contains multicast addresses. > > The VIRTIO_NET_CTRL_MAC_ADDR_SET command is used to set the > @@ -3354,6 +3354,21 @@ accepts. > The command-specific-data for VIRTIO_NET_CTRL_MAC_ADDR_SET is > the 6-byte MAC address. > > +\devicenormative{\subparagraph}{Setting MAC Address Filtering}{Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering} > + > +The device MUST have an empty MAC filtering table on reset. > + > +The device MUST update the MAC filtering table before it consumes > +the VIRTIO_NET_CTRL_MAC_TABLE_SET command. > + > +The device MUST update \field{mac} in config space before it consumes > +the VIRTIO_NET_CTRL_MAC_ADDR_SET command, if VIRTIO_NET_F_MAC_ADDR has > +been negotiated. > + > +The device SHOULD drop incoming packets which have a destination MAC which > +matches neither the \field{mac} (or that set with VIRTIO_NET_CTRL_MAC_ADDR_SET) > +nor the MAC filtering table. > + > \drivernormative{\subparagraph}{Setting MAC Address Filtering}{Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering} > > A driver MUST NOT write to the \field{mac} if VIRTIO_NET_F_MAC_ADDR is > @@ -3365,6 +3380,11 @@ VIRTIO_NET_CTRL_MAC_ADDR_SET command is atomic whereas > MUST negotiate VIRTIO_NET_F_MAC_ADDR if they change > mac address when device is accepting incoming packets. > > +The driver MUST follow the VIRTIO_NET_CTRL_MAC_TABLE_SET command > +by a le32 number, followed by that number of non-multicast > +MAC addresses, followed by another le32 number, followed by > +that number of multicast addresses. Either number MAY be 0. > + > \subparagraph{Legacy Interface: Setting MAC Address Filtering}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering / Legacy Interface: Setting MAC Address Filtering} > When using the legacy interface, transitional devices and drivers > MUST format \field{entries} in struct virtio_net_ctrl_mac
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]