[libvirt] [libvirt PATCH] Port-profile ID support using IFLA_VF_PORT_PROFILE netlink msg

Stefan Berger stefanb at us.ibm.com
Mon May 10 19:50:51 UTC 2010


Scott Feldman <scofeldm at cisco.com> wrote on 05/10/2010 03:11:22 PM:

> 
> chrisw, Gerhard Stenzel, libvir-list, libvir-list-bounces
> 
> On 5/10/10 11:57 AM, "Stefan Berger" <stefanb at us.ibm.com> wrote:
> 
> > libvir-list-bounces at redhat.com wrote on 05/10/2010 02:35:49 PM:
> > 
> > 
> >> 
> >> Correct, IFLA_VF_PORT_PROFILE is not in the kernel yet.  The kernel
> >> patch is be discussed on the kernel netdev mailing list.  The most 
recent
> >> discussion is on ways to merge VDP and CDCP into what I've posted for
> >> IFLA_VF_PORT_PROFILE.
> >> 
> >> I'll send out another libvirt patch once the kernel discussions are
> >> final.
> > 
> > I suppose you will provide the libvirt patch only for what seems to be
> > Cisco technology support.
> 
> I can only test with our production equipment setup, so I'm hesitant to
> include additions to the patch for VDP/CDCP which I can't test.
> 
> > Now the slight differences in technology
> > that we seem to try to support here are reflected in the parameters 
that
> > go into the XML and end up in the netlink messages. Any way to
> > consolidate that?
> 
> I doesn't appear we'll be able to consolidate the parameters between the 
two
> technologies based on what I've seen from Arnd's latest patch on the 
kernel
> mailing list.  The latest proposal is to define a single netlink msg 
that
> can handle two disjoint sets of parameters.  If there is no way for 
further
> consolidation, it probably makes more senses to have two different 
netlink
> msgs, one for each parameter set.

Would it be possible to support these 2 XML :

    <interface type='direct'>
      <source dev='static' mode='vepa'/>
      <model type='virtio'/>
      <vsi managerid='12' typeid='0x123456' typeidversion='1'
           instanceid='fa9b7fff-b0a0-4893-8e0e-beef4ff18f8f' />
      <filterref filter='clean-traffic'/>
    </interface>

    <interface type='direct'>
      <source dev='static' mode='vepa'/>
      <model type='virtio'/>
      <vsi profileid='my_profile'/>
    </interface>

and profileid becomes mutually exclusive to the parameters shown above.
The internal data structures (domain_conf.h) to use would be defined as 
this:

enum virVSIType {
    VIR_VSI_INVALID,
    VIR_VSI_8021QBG,
    VIR_VSI_8021QBH,
};

/* profile data for macvtap (VEPA) */
typedef struct _virVSIProfileDef virVSIProfileDef;
typedef virVSIProfileDef *virVSIProfileDefPtr;
struct _virVSIProfileDef {
    enum virVSIType   vsiType;
    struct {
        uint8_t       managerID;
        uint32_t      typeID; // 24 bit valid
        uint8_t       typeIDVersion;
        unsigned char instanceID[VIR_UUID_BUFLEN];
    } vsi8021Qbg;
#ifdef IFLA_VF_PORT_PROFILE_MAX
    struct {
        char          profileID[IFLA_VF_PORT_PROFILE_MAX];
    } vsi8021Qbh;
#endif
};


[...]

        struct {
            char *linkdev;
            int mode;
            virVSIProfileDef vsiProfile;
        } direct;


Regards,

Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20100510/77fec28e/attachment-0001.htm>


More information about the libvir-list mailing list