• Y
    qemu: Process RDMA GID state change event · ed357cef
    Yuval Shaia 提交于
    This event is emitted on the monitor when a GID table in pvrdma device
    is modified and the change needs to be propagate to the backend RDMA
    device's GID table.
    
    The control over the RDMA device's GID table is done by updating the
    device's Ethernet function addresses.
    Usually the first GID entry is determine by the MAC address, the second
    by the first IPv6 address and the third by the IPv4 address. Other
    entries can be added by adding more IP addresses. The opposite is the
    same, i.e. whenever an address is removed, the corresponding GID entry
    is removed.
    
    The process is done by the network and RDMA stacks. Whenever an address
    is added the ib_core driver is notified and calls the device driver's
    add_gid function which in turn update the device.
    
    To support this in pvrdma device we need to hook into the create_bind
    and destroy_bind HW commands triggered by pvrdma driver in guest.
    Whenever a changed is made to the pvrdma device's GID table a special
    QMP messages is sent to be processed by libvirt to update the address of
    the backend Ethernet device.
    Signed-off-by: NYuval Shaia <yuval.shaia@oracle.com>
    Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
    ed357cef
qemu_monitor.h 50.2 KB