Managing SR-IOV Virtual Functions on Non-primary Root Domains
            
         These commands create two virtual functions from each of the two physical functions that belong to the non-primary root domain.
               
primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0 Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF0 primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0 Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF1 primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0 primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1
You can also use the -n option to create the two virtual functions by using the following two commands:
               
primary# ldm create-vf -n 2 /SYS/MB/PCIE5/IOVNET.PF0 Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF0 Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF1 primary# ldm create-vf -n 2 /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1
If you were unable to dynamically create the virtual functions on a given physical function, initiate a delayed reconfiguration to create them statically.
primary# ldm start-reconf ldg1 primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0 Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF0 primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0 Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF1 primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0 primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1
Then reboot the root domain, ldg1, to effect the changes.
               
primary# ldm stop-domain -r ldg1The following command shows the new virtual functions.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/PM0/CMP0/PXE BUS pci_0 primary IOV /SYS/PM0/CMP1/PXE BUS pci_1 ldg1 IOV /SYS/PM0/CMP0/NIU_CORE NIU niu_0 primary /SYS/PM0/CMP1/NIU_CORE NIU niu_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 ldg1 OCC /SYS/MB/PCIE3 PCIE pci_1 ldg1 OCC /SYS/MB/PCIE5 PCIE pci_1 ldg1 OCC /SYS/MB/PCIE7 PCIE pci_1 ldg2 OCC /SYS/MB/PCIE9 PCIE pci_1 ldg1 EMP /SYS/MB/NET2 PCIE pci_1 ldg1 OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 ldg1 /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 ldg1 /SYS/MB/NET2/IOVNET.PF0 PF pci_1 ldg1 /SYS/MB/NET2/IOVNET.PF1 PF pci_1 ldg1 /SYS/MB/PCIE5/IOVNET.PF0.VF0 VF pci_1 /SYS/MB/PCIE5/IOVNET.PF0.VF1 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF0 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF1 VF pci_1
The following command dynamically adds the /SYS/MB/PCIE5/IOVNET.PF0.VF1 virtual function to the ldg1 non-primary root domain:
               
primary# ldm add-io /SYS/MB/PCIE5/IOVNET.PF0.VF1 ldg1The following command dynamically adds the /SYS/MB/NET2/IOVNET.PF1.VF0 virtual function to the ldg2 domain:
               
primary# ldm add-io /SYS/MB/NET2/IOVNET.PF1.VF0 ldg2The following command adds the /SYS/MB/NET2/IOVNET.PF1.VF1 virtual function to the bound ldg3 domain:
               
primary# ldm add-io /SYS/MB/NET2/IOVNET.PF1.VF1 ldg3 primary# ldm start-domain ldg3 LDom ldg3 started
Connect to the console of the ldg3 domain and then boot its OS.
               
The following output shows that all the assignments appear as expected. One virtual function is unassigned so it can be assigned dynamically to the ldg1, ldg2, or ldg3 domain.
               
primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS   
----                                      ----   ---      ------   ------   
/SYS/PM0/CMP0/PXE                         BUS    pci_0    primary  IOV
/SYS/PM0/CMP1/PXE                         BUS    pci_1    ldg1     IOV
/SYS/PM0/CMP0/NIU_CORE                    NIU    niu_0    primary
/SYS/PM0/CMP1/NIU_CORE                    NIU    niu_1    primary
/SYS/MB/PCIE0                             PCIE   pci_0    primary  OCC      
/SYS/MB/PCIE2                             PCIE   pci_0    primary  OCC      
/SYS/MB/PCIE4                             PCIE   pci_0    primary  OCC      
/SYS/MB/PCIE6                             PCIE   pci_0    primary  EMP      
/SYS/MB/PCIE8                             PCIE   pci_0    primary  EMP      
/SYS/MB/SASHBA                            PCIE   pci_0    primary  OCC      
/SYS/MB/NET0                              PCIE   pci_0    primary  OCC      
/SYS/MB/PCIE1                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE3                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE5                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE7                             PCIE   pci_1    ldg2     OCC      
/SYS/MB/PCIE9                             PCIE   pci_1    ldg1     EMP      
/SYS/MB/NET2                              PCIE   pci_1    ldg1     OCC      
/SYS/MB/NET0/IOVNET.PF0                   PF     pci_0    primary           
/SYS/MB/NET0/IOVNET.PF1                   PF     pci_0    primary           
/SYS/MB/PCIE5/IOVNET.PF0                  PF     pci_1    ldg1              
/SYS/MB/PCIE5/IOVNET.PF1                  PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_1    ldg1              
/SYS/MB/PCIE5/IOVNET.PF0.VF0              VF     pci_1                      
/SYS/MB/PCIE5/IOVNET.PF0.VF1              VF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF1.VF0               VF     pci_1    ldg2              
/SYS/MB/NET2/IOVNET.PF1.VF1               VF     pci_1    ldg3