ia64/xen-unstable

changeset 16425:d3041196ae69

netfront/back: Specify interface allowing multicast address add/remove
requests to be passed from the frontend to the backend.

Signed-off-by: David Edmondson <dme@sun.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Nov 22 17:43:29 2007 +0000 (2007-11-22)
parents 5e85709e998b
children ae087a0fa2c9
files xen/include/public/io/netif.h
line diff
     1.1 --- a/xen/include/public/io/netif.h	Thu Nov 22 15:10:47 2007 +0000
     1.2 +++ b/xen/include/public/io/netif.h	Thu Nov 22 17:43:29 2007 +0000
     1.3 @@ -75,9 +75,11 @@ struct netif_tx_request {
     1.4  typedef struct netif_tx_request netif_tx_request_t;
     1.5  
     1.6  /* Types of netif_extra_info descriptors. */
     1.7 -#define XEN_NETIF_EXTRA_TYPE_NONE  (0)  /* Never used - invalid */
     1.8 -#define XEN_NETIF_EXTRA_TYPE_GSO   (1)  /* u.gso */
     1.9 -#define XEN_NETIF_EXTRA_TYPE_MAX   (2)
    1.10 +#define XEN_NETIF_EXTRA_TYPE_NONE      (0)  /* Never used - invalid */
    1.11 +#define XEN_NETIF_EXTRA_TYPE_GSO       (1)  /* u.gso */
    1.12 +#define XEN_NETIF_EXTRA_TYPE_MCAST_ADD (2)  /* u.mcast */
    1.13 +#define XEN_NETIF_EXTRA_TYPE_MCAST_DEL (3)  /* u.mcast */
    1.14 +#define XEN_NETIF_EXTRA_TYPE_MAX       (4)
    1.15  
    1.16  /* netif_extra_info flags. */
    1.17  #define _XEN_NETIF_EXTRA_FLAG_MORE (0)
    1.18 @@ -95,6 +97,9 @@ struct netif_extra_info {
    1.19      uint8_t flags; /* XEN_NETIF_EXTRA_FLAG_* */
    1.20  
    1.21      union {
    1.22 +        /*
    1.23 +         * XEN_NETIF_EXTRA_TYPE_GSO:
    1.24 +         */
    1.25          struct {
    1.26              /*
    1.27               * Maximum payload size of each segment. For example, for TCP this
    1.28 @@ -118,9 +123,25 @@ struct netif_extra_info {
    1.29              uint16_t features; /* XEN_NETIF_GSO_FEAT_* */
    1.30          } gso;
    1.31  
    1.32 +        /*
    1.33 +         * XEN_NETIF_EXTRA_TYPE_MCAST_{ADD,DEL}:
    1.34 +         * Backend advertises availability via 'feature-multicast-control'
    1.35 +         * xenbus node containing value '1'.
    1.36 +         * Frontend requests this feature by advertising
    1.37 +         * 'request-multicast-control' xenbus node containing value '1'.
    1.38 +         * If multicast control is requested then multicast flooding is
    1.39 +         * disabled and the frontend must explicitly register its interest
    1.40 +         * in multicast groups using dummy transmit requests containing
    1.41 +         * MCAST_{ADD,DEL} extra-info fragments.
    1.42 +         */
    1.43 +        struct {
    1.44 +            uint8_t addr[6]; /* Address to add/remove. */
    1.45 +        } mcast;
    1.46 +
    1.47          uint16_t pad[3];
    1.48      } u;
    1.49  };
    1.50 +typedef struct netif_extra_info netif_extra_info_t;
    1.51  
    1.52  struct netif_tx_response {
    1.53      uint16_t id;