[ewg] [PATCH] QLogic VNIC: Changes to QLogic VNIC Documentation

Ramachandra K ramachandra.kuchimanchi at qlogic.com
Thu Jul 10 08:40:03 PDT 2008


From: Ramachandra K <ramachandra.kuchimanchi at qlogic.com>

With inclusion of new features and tools into QLogic VNIC package,
documentation of the same is being updated.

Signed-off-by: Ramachandra K <ramachandra.kuchimanchi at qlogic.com>
Signed-off-by: Poornima Kamath <poornima.kamath at qlogic.com>
Signed-off-by: Amar Mudrankit <amar.mudrankit at qlogic.com>
---

 QLOGIC_VNIC_README.txt |  365 ++++++++++++++++++++++++++++++++++++++++--------
 qlgc_vnic.cfg.sample   |  154 ++++++++++++++++++++
 qlogic_vnic.cfg.sample |  102 -------------
 3 files changed, 456 insertions(+), 165 deletions(-)
 create mode 100644 qlgc_vnic.cfg.sample
 delete mode 100644 qlogic_vnic.cfg.sample

diff --git a/QLOGIC_VNIC_README.txt b/QLOGIC_VNIC_README.txt
index dc1f412..5450565 100644
--- a/QLOGIC_VNIC_README.txt
+++ b/QLOGIC_VNIC_README.txt
@@ -1,49 +1,69 @@
-This is a technology preview release of the QLogic VNIC driver on OFED 1.3.
-This driver is currently supported on Intel x86 32 and 64 bit machines with
-Mellanox HCAs. Supported OS are RHEL 4 Update 3, RHEL 4 Update 4, SLES 10
-and the vanilla 2.6.19 kernel.
-
-The VNIC driver in conjunction with the QLogic Virtual Ethernet I/O gateway
-(VEx) provides Ethernet interfaces on a host with IB HCA(s) without the need
+This is a release of the QLogic VNIC driver on OFED 1.4.  This driver is 
+currently supported on Intel x86 32 and 64 bit machines. 
+Supported OS are: 
+-  RHEL 4 Update 4.
+-  RHEL 4 Update 5.
+-  RHEL 4 Update 6.
+-  SLES 10.
+-  SLES 10 Service Pack 1.
+-  SLES 10 Service Pack 1 Update 1.
+-  SLES 10 Service Pack 2.
+-  RHEL 5.
+-  RHEL 5 Update 1.
+-  RHEL 5 Update 2.
+-  vanilla 2.6.27 kernel.
+
+The VNIC driver in conjunction with the QLogic Ethernet Virtual I/O Controller
+(EVIC) provides Ethernet interfaces on a host with IB HCA(s) without the need
 for any physical Ethernet NIC.
 
-This file describes the use of the VNIC ULP service on an OFED stack
+This file describes the use of the QLogic VNIC ULP service on an OFED stack
 and covers the following points:
 
-A) Creating VNIC interfaces
-B) Discovering VEx IOCs present on the fabric using ibvexdm
-C) Starting the VNIC driver and the VNIC interfaces
-D) Assigning IP addresses etc for the VNIC interfaces
-E) Information about the VNIC interfaces
-F) Deleting a specific VNIC interface
+A) Creating QLogic VNIC interfaces
+B) Discovering VEx/EVIC IOCs present on the fabric using ib_qlgc_vnic_query
+C) Starting the QLogic VNIC driver and the VNIC interfaces
+D) Assigning IP addresses etc for the QLogic VNIC interfaces
+E) Information about the QLogic VNIC interfaces
+F) Deleting a specific QLogic VNIC interface
+G) QLogic VNIC Dynamic Update Daemon Tool and Hot Swap support
+H) Information about creating VLAN interfaces
+I) Information about enabling IB Multicast for QLogic VNIC interface
+J) Basic Troubleshooting
 
-A) Creating VNIC interfaces
+A) Creating QLogic VNIC interfaces
 
 The VNIC interfaces can be created with the help of
-a configuration file which must be placed at /etc/infiniband/qlogic_vnic.cfg.
+the configuration file which must be placed at /etc/infiniband/qlgc_vnic.cfg.
 
-Please take a look at qlogic_vnic.cfg.sample file (available as part of the
-documentation) to see how VNIC configuration files are written. You can use
-this configuration file as the basis for creating a VNIC configuration file by 
-copying it to /etc/infiniband/qlogic_vnic.cfg. Of course you will have to
+Please take a look at /etc/infiniband/qlgc_vnic.cfg.sample file (available also
+as part of the documentation) to see how VNIC configuration files are written.
+You can use this configuration file as the basis for creating a VNIC configuration
+file by copying it to /etc/infiniband/qlgc_vnic.cfg. Of course you will have to
 replace the IOCGUID, IOCSTRING values etc in the sample configuration file
-with those of the VEx IOCs present on your fabric.
+with those of the EVIC IOCs present on your fabric.
+
+(For backward compatibilty, if this file is missing, 
+/etc/infiniband/qlogic_vnic.cfg or /etc/sysconfig/ics_inic.cfg
+will be used for configuration)
 
-[As back ward compatibility for the QLogic Infiniserv stack, if the
-/etc/infiniband/qlogic_vnic.cfg file is not present, the VNIC service will
-look for the /etc/sysconfig/ics_inic.cfg configuration file]
+Please note that using DGID of the EVIC/VEx IOC is
+recommended as it will ensure the quickest startup of the
+VNIC service. If DGID is specified then you must also
+specify the IOCGUID. More details can be found in
+the qlgc_vnic.cfg.sample file.
 
-B) Discovering VEx IOCs present on the fabric using ibvexdm
+B) Discovering EVIC/VEx IOCs present on the fabric using ib_qlgc_vnic_query
 
 For writing the configuration file, you will need information
-about the VEx IOCs present on the fabric like their IOCGUID,
-IOCSTRING etc. The ibvexdm tool should be used to get this
+about the EVIC/VEx IOCs present on the fabric like their IOCGUID,
+IOCSTRING etc. The ib_qlgc_vnic_query tool should be used to get this
 information. 
 
-When ibvexdm is executed without any options, it displays
-detailed information about all the VEx IOCs present on the fabric:
+When ib_qlgc_vnic_query is executed without any options, it displays
+detailed information about all the EVIC/VEx IOCs present on the fabric:
 
-# ibvexdm
+# ib_qlgc_vnic_query
 IO Unit Info:
     port LID:        0003
     port GID:        fe8000000000000000066a0258000001
@@ -82,75 +102,294 @@ IO Unit Info:
             service[  1]: 1000066a00000103 / InfiniNIC.InfiniConSys.Data:03
 
 
-When ibvexdm is run with -e option, it reports the IOCGUID information 
+When ib_qlgc_vnic_query is run with -e option, it reports the IOCGUID information 
 and with -s option it reports the IOCSTRING information for the VEx IOCs
 present on the fabric.
 
-# ibvexdm -e
+# ib_qlgc_vnic_query -e
 ioc_guid=00066a0130000001,dgid=fe8000000000000000066a0258000001,pkey=ffff
 ioc_guid=00066a0230000001,dgid=fe8000000000000000066a0258000001,pkey=ffff
 ioc_guid=00066a0330000001,dgid=fe8000000000000000066a0258000001,pkey=ffff
 
-#ibvexdm -s
+#ib_qlgc_vnic_query -s
 "Chassis 0x00066A00010003F2, Slot 1, IOC 1"
 "Chassis 0x00066A00010003F2, Slot 1, IOC 2"
 "Chassis 0x00066A00010003F2, Slot 1, IOC 3"
 
-#ibvexdm -es
+#ib_qlgc_vnic_query -es
 ioc_guid=00066a0130000001,dgid=fe8000000000000000066a0258000001,pkey=ffff,"Chassis 0x00066A00010003F2, Slot 1, IOC 1"
 ioc_guid=00066a0230000001,dgid=fe8000000000000000066a0258000001,pkey=ffff,"Chassis 0x00066A00010003F2, Slot 1, IOC 2"
 ioc_guid=00066a0330000001,dgid=fe8000000000000000066a0258000001,pkey=ffff,"Chassis 0x00066A00010003F2, Slot 1, IOC 3"
 
-C) Starting the VNIC driver and the VNIC interfaces
+ib_qlgc_vnic_query uses Port 1 of HCA on host as a default port to obtain the information
+about EVIC/VEx IOCs. But, the default port can be overridden by using a -d 
+option and then specifying "umad" device name corresponding to desired HCA port.
+
+Typically, Port 1 of HCA corresponds to umad device "umad0" and Port 2 of HCA
+corresponds to umad device "umad1". Thus, 
+
+# ib_qlgc_vnic_query -es
+
+is same as :
+
+# ib_qlgc_vnic_query -es -d /dev/infiniband/umad0
+
+and to collect the information about EVIC/VEx IOCs accessible through port 2,
+use "umad1" device : 
+
+# ib_qlgc_vnic_query -es -d /dev/infiniband/umad1
+
+C) Starting the QLogic VNIC driver and the QLogic VNIC interfaces
+
+To start the QLogic VNIC service as a part of startup of OFED stack, set
+
+QLGC_VNIC_LOAD=yes
+
+in /etc/infiniband/openib.conf file. With this actually, the QLogic VNIC
+service will also be stopped when the OFED stack is stopped.  Also, if OFED
+stack has been marked to start on boot, QLogic VNIC service will also start
+on boot.
+
+The rest of the discussion in this subsection C) is valid only if
+
+QLGC_VNIC_LOAD=no
+
+is set into /etc/infiniband/openib.conf.
 
 Once you have created a configuration file, you can start the VNIC driver
 and create the VNIC interfaces specified in the configuration file with:
-#/etc/init.d/openibd start
 
+#/sbin/service qlgc_vnic start
+
+You can stop the VNIC driver and bring down the VNIC interfaces with
 
-The VNIC driver is started by default as a part of openibd service.
-(If openibd is configured to start on boot VNIC driver will also start on boot)
-If you do not want to start the VNIC driver as a part of openibd service, set
-VNIC_LOAD=no in /etc/infiniband/openib.conf
+#/sbin/service qlgc_vnic stop
 
-You can stop the VNIC driver and openibd services with
-#/etc/init.d/openibd stop
+To restart the QLogic VNIC driver, you can use
 
-You can restart the VNIC driver and openibd service using
-#/etc/init.d/openibd restart
+#/sbin/service qlgc_vnic restart
 
-After starting openibd service you can independently control the VNIC driver using ql_vnic service
-To stop the VNIC driver you  can use
-#/etc/init.d/ql_vnic stop
+If you have not started the Infiniband network stack (Infinipath or OFED),
+then running "/sbin/service qlgc_vnic start" command will also cause the
+Infiniband network stack to be started since the QLogic VNIC service requires
+the Infiniband stack.
 
-If you make changes to the VNIC configuration file and want the changes to be
-reflected, you can restart the VNIC service independently, using
-#/etc/init.d/ql_vnic restart
+On the other hand if you start the Infiniband network stack separately, then
+the correct order of starting is:
 
-Note that it is required to start openibd service before using ql_vnic service
+-  Start the Infiniband stack
+-  Start QLogic VNIC service
 
-D) Assigning IP addresses etc for the VNIC interfaces
+For example, if you use OFED, correct order of starting is:
+
+/sbin/service openibd start
+/sbin/service qlgc_vnic start
+
+Correct order of stopping is:
+
+- Stop QLogic VNIC service
+- Stop the Infiniband stack
+
+For example, if you use OFED, correct order of stopping is:
+
+/sbin/service qlgc_vnic stop
+/sbin/service openibd stop
+
+If you try to stop the Infiniband stack when the QLogic VNIC service is
+running,
+you will get an error message that some of the modules of the Infiniband stack
+are in use by the QLogic VNIC service. Also, any QLogic VNIC interfaces that
+you
+created are removed (because stopping the Infiniband network stack causes the
+HCA
+driver to be unloaded which is required for the VNIC interfaces to be
+present).
+In this case, do the following:
+
+  1. Stop the QLogic VNIC service with "/sbin/service qlgc_vnic stop"
+
+  2. Stop the Infiniband stack again.
+
+  3. If you want to restart the QLogic VNIC interfaces, use
+    "/sbin/service qlgc_vnic start".
+
+
+D) Assigning IP addresses etc for the QLogic VNIC interfaces
 
 This can be done with ifconfig or by setting up the ifcfg-XXX (ifcfg-veth0 for
 an interface named veth0 etc) network files for the corresponding VNIC interfaces.
 
-E) Information about the VNIC interfaces
+E) Information about the QLogic VNIC interfaces
 
-Information about the created VNIC interfaces can be obtained from
-/sys/class/infiniband_vnic/interfaces/. A directory is created
-for each interface under this directory.
+Information about VNIC interfaces on a given host can be obtained using a 
+script "ib_qlgc_vnic_info" :-
 
-The directory for each interface contains information about the interface
-and the primary and secondary connections.
+# ib_qlgc_vnic_info
 
-F) Deleting a specific VNIC interface
+VNIC Interface : eioc0
+    VNIC State        : VNIC_REGISTERED
+    Current Path      : primary path
+    Receive Checksum  : true
+    Transmit checksum : true
+ 
+    Primary Path : 
+        VIPORT State  : VIPORT_CONNECTED
+        Link State    : LINK_IDLING
+        HCA Info.     : vnic-mthca0-1
+        Heartbeat     : 100
+        IOC String    : EVIC in Chassis 0x00066a00db000010, Slot 4, Ioc 1
+        IOC GUID      : 66a01de000037
+        DGID          : fe8000000000000000066a11de000037
+        P Key         : ffff
+ 
+    Secondary Path : 
+        VIPORT State  : VIPORT_DISCONNECTED
+        Link State    : INVALID STATE
+        HCA Info.     : vnic-mthca0-2
+        Heartbeat     : 100
+        IOC String    : 
+        IOC GUID      : 66a01de000037
+        DGID          : 00000000000000000000000000000000
+        P Key         : 0
+
+This information is collected from /sys/class/infiniband_qlgc_vnic/interfaces/
+directory under which there is a separate directory corresponding to each
+VNIC interface.
+
+F) Deleting a specific QLogic VNIC interface
 
 VNIC interfaces can be deleted by writing the name of the interface to 
-the /sys/class/infiniband_vnic/interfaces/delete_vnic file.
+the /sys/class/infiniband_qlgc_vnic/interfaces/delete_vnic file.
 
 For example to delete interface veth0
 
-echo -n veth0 > /sys/class/infiniband_vnic/interfaces/delete_vnic
-
+echo -n veth0 > /sys/class/infiniband_qlgc_vnic/interfaces/delete_vnic
+
+G) QLogic VNIC Dynamic Update Daemon Tool and Hot Swap support:-
+
+This tool is started and stopped as part of the QLogic VNIC service 
+(refer to C above) and provides the following features:
+
+1. Dynamic update of disconnected interfaces (which have been configured
+WITHOUT using the DGID option in the configuration file) : 
+
+At the start up of VNIC driver, if the HCA port through which a particular VNIC
+interface path (primary or secondary) connects to target is down or the 
+EVIC/VEx IOC is not available then all the required parameters (DGID etc) for connecting
+with the EVIC/VEx cannot be determined. Hence the corresponding VNIC interface
+path is not available at the start of the VNIC service. This daemon constantly
+monitors the configured VNIC interfaces to check if any of them are disconnected.
+If any of the interfaces are disconnected, it scans for available EVIC/VEx targets using
+"ib_qlgc_vnic_query" tool. When daemon sees that for a given path of a VNIC interface, 
+the configured EVIC/VEx IOC has become available, it dynamically updates the 
+VNIC kernel driver with the required information to establish connection for 
+that path of the interface. In this way, the interface gets connected with
+the configured EVIC/VEx whenever it becomes available without any manual 
+intervention.
+
+2. Hot Swap support :
+
+Hot swap is an operation in which an existing EVIC/VEx is replaced by another
+EVIC/VEx (in the same slot of the switch chassis as the older one). In such a 
+case, the current connection for the corresponding VNIC interface will have to
+be re-established. The daemon detects this hot swap case and re-establishes
+the connection automatically. To make use of this feature of the daemon, it is
+recommended that IOCSTRING be used in the configuration file to configure the
+VNIC interfaces.
+
+This is because, after a hot swap though all other parameters like DGID, IOCGUID etc
+of the EVIC/VEx change, the IOCSTRING remains the same. Thus the daemon monitors
+for changes in IOCGUID and DGID of disconnected interfaces based on the IOCSTRING.
+If these values have changed it updates the kernel driver so that the VNIC
+interface can start using the new EVIC/VEx.
+
+If in addition to IOCSTRING, DGID and IOCGUID have been used to configure
+a VNIC interface, then on a hotswap the daemon will update the parameters as required.
+But to have that VNIC interface available immediately on the next restart of the
+QLogic VNIC service, please make sure to update the configuration file with the
+new DGID and IOCGUID values. Otherwise, the creation of such interfaces will be
+delayed till the daemon runs and updates the parameters.
+
+H) Information about creating VLAN interfaces
+
+The EVIC/VEx supports VLAN tagging without having to explicitly create VLAN
+interfaces for the VNIC interface on the host. This is done by enabling
+Egress/Ingress tagging on the EVIC/VEx and setting the "Host ignores VLAN"
+option for the VNIC interface. The "Host ignores VLAN" option is enabled
+by default due to which VLAN tags are ignored on the host by the QLogic
+VNIC driver. Thus explicitly created VLAN interfaces (using vconfig command)
+for a given VNIC interface will not be operational.
+
+If you want to explicitly create a VLAN interface for a given VNIC interface,
+then you will have to disable the "Host ignores VLAN" option for the
+VNIC interface on the EVIC/VEx. The qlgc_vnic service must be restarted
+on the host after disabling (or enabling) the "Host ignores VLAN" option.
+
+Please refer to the EVIC/VEx documentation for more information on Egress/Ingress
+port tagging feature and disabling the "Host ignores VLAN" option.
+
+I) Information about enabling IB Multicast for QLogic VNIC interface
+
+QLogic VNIC driver has been upgraded to support the IB Multicasting feature of 
+EVIC/VEx. This feature enables the QLogic VNIC host driver to support the IP 
+multicasting more efficiently. With this feature enabled, infiniband multicast 
+group acts as a carrier of IP multicast traffic. EVIC will make use of such IB 
+multicast groups for forwarding IP multicast traffic to VNIC interfaces which 
+are member of given IP multicast group. In the older QLogic VNIC host driver, 
+IB multicasting was not being used to carry IP multicast traffic.
+
+By default, IB multicasting is disabled on EVIC/VEx; but it is enabled by
+default at the QLogic VNIC host driver.
+
+To disable IB multicast feature on the host driver, VNIC configuration file
+needs to be modified by setting the parameter IB_MULTICAST=FALSE in the 
+interface configuration. Please refer to the qlgc_vnic.cfg.sample for more 
+details on configuration of VNIC interfaces for IB multicasting. 
+IB multicasting also needs to be enabled over EVIC/VEx. Please refer to the 
+EVIC/VEx documentation for more information on enabling IB multicast 
+feature over EVIC/VEx.
+
+J) Basic Troubleshooting
+
+1. In case of any problems, make sure that:
+
+   a) The HCA ports you are trying to use have IB cables connected and are in an
+      active state. You can use the "ibv_devinfo" tool to check the state of
+      your HCA ports.
+
+   b) If your HCA ports are not active, check if an SM is running on the fabric
+      where the HCA ports are connected. If you have done a full install of
+      OFED, you can use the "sminfo" command ("sminfo -P 2" for port 2) to
+      check SM information.
+
+   c) Make sure that the EVIC/VEx is powered up and its Ethernet cables are connected
+      properly.
+
+   d) Check /var/log/messages for any error messages.
+
+2. If some of your VNIC interfaces are not available:
+
+   a) Use "ifconfig" tool  with -a option to see if all interfaces are created.
+      It is possible that the interfaces are created but do not have an
+      IP address. Make sure that you have setup a correct ifcfg-XXX file for your
+      VNIC interfaces for automatic assignment of IP addresses.
+
+      If the VNIC interface is created and the ifcfg file is also correct
+      but the VNIC interface is not UP, make sure that the target EVIC/VEx
+      IOC has an Ethernet cable properly connected.
+
+   b) Make sure that the VNIC configuration file has been setup properly
+      with correct EVIC/VEx target DGID/IOCGUID/IOCSTRING information and 
+      instance numbers.
+
+   c) Make sure that the EVIC/VEx target IOC specified for that interface is
+      available. You can use the "ib_qlgc_vnic_query" tool to verify this. If it is not
+      available when you started  the service, but it becomes available later
+      on, then the QLogic VNIC dynamic update daemon  will  bring up the
+      interface when the target becomes available. You will see messages in
+      /var/log/messages when the corresponding interface is created.
+
+   d) Make sure that you have not exceeded the total number of Virtual interfaces
+      supported by the EVIC/VEx. You can check the total number of Virtual interfaces
+      currently in use on the HTTP interface of the EVIC/VEx.
 
- 
diff --git a/qlgc_vnic.cfg.sample b/qlgc_vnic.cfg.sample
new file mode 100644
index 0000000..c474881
--- /dev/null
+++ b/qlgc_vnic.cfg.sample
@@ -0,0 +1,154 @@
+# QLogic VNIC configuration file
+#
+# This file documents and describes the use of the
+# VNIC configuration file qlgc_vnic.cfg. This file
+# should reside in /etc/infiniband/qlgc_vnic.cfg
+#
+# 
+# Knowing how to fill the configuration file
+###############################################
+#
+# For filling the configuration file you need to know
+# some information about your EVIC/VEx device. This information
+# can be obtained with the help of the ib_qlgc_vnic_query tool.
+# "ib_qlgc_vnic_query -es" command will give DGID, IOCGUID and IOCSTRING information about
+# the EVIC/VEx IOCs that are available through port 1 and
+# "ib_qlgc_vnic_query -es -d /dev/infiniband/umad1" will give information about
+# the EVIC/VEX IOCs available through port 2.
+# 
+# Refer to the README for more information about the ib_qlgc_vnic_query tool.
+#
+#
+# General structure of the configuration file
+###############################################
+#
+# All lines beginning with a # are treated as comments.
+#
+# A simple configuration file consists of CREATE commands
+# for each VNIC interface to be created. 
+#
+# A simple CREATE command looks like this:
+#
+#  {CREATE; NAME="eioc1";
+#	DGID=0xfe8000000000000000066a0258000001; IOCGUID=0x66a0130000001; IOCSTRING="Chassis 0x00066A00010003F2, Slot 1, IOC 1";
+#  }	
+#
+#Where 
+#
+#NAME - The device name for the interface
+#
+#DGID - The DGID of the IOC to use.
+#
+#	If DGID is specified then IOCGUID MUST also be specified.
+#
+#	Though specifying DGID is optional, using this option is recommended,
+#	as it will provide the quickest way of starting up the VNIC service.
+#
+#
+#IOCGUID - The GUID of the IOC to use.
+#
+#IOCSTRING - The IOC Profile ID String of the IOC to use.  
+#
+#	  Either an IOCGUID or an IOCSTRING MUST always be specified.
+#
+#	  If DGID is specified then IOCGUID MUST also be specified.
+#
+#	  If no DGID is specified and both IOCGUID and IOCSTRING are specified
+#	  then IOCSTRING is given preference and the DGID of the IOC whose
+#	  IOCSTRING is specified is used to create the VNIC interface.
+#	  
+#	 If hotswap capability of EVIC/VEx is to be used, then IOCSTRING
+#	 must be specified.
+#
+#INSTANCE - Defaults to 0.  Range 0-255.  If a host will connect to the
+#	same IOC more than once, each connection must be assigned a unique
+#       number.  
+#
+#
+#RX_CSUM - defaults to TRUE.  When true, indicates that the receive checksum
+#	    should be done by the EVIC/VEx
+#
+#HEARTBEAT - defaults to 100.  Specifies the time in 1/100'ths of a second
+#	    between heartbeats
+#
+#PORT - Specification for local HCA port. First port is 1.
+#
+#HCA - Optional HCA specification for use with PORT specification. First HCA is 0.
+#
+#
+#IB_MULTICAST - Controls enabling or disabling of IB multicast feature on VNIC.
+#               Defaults to TRUE implying IB multicast is enabled for 
+#               the interface. To disable IB multicast, set it to FALSE.
+#
+# Example of DGID and IOCGUID based configuration (this configuration will give
+# the quickest start up of VNIC service):
+#
+#  {CREATE; NAME="eioc1";
+#	 DGID=0xfe8000000000000000066a0258000001; IOCGUID=0x66a0130000001; 
+#  }
+#
+#
+# Example of IOCGUID based configuration:
+#
+#  {CREATE; NAME="eioc1"; IOCGUID=0x66A013000010C;
+#     RX_CSUM=TRUE;
+#     HEARTBEAT=100; }
+#
+# Example of IOCSTRING based configuration:
+#
+#  {CREATE; NAME="eioc1"; IOCSTRING="Chassis 0x00066A0050000018, Slot 2, IOC 1";
+#     RX_CSUM=TRUE;
+#     HEARTBEAT=100; }
+#
+#
+#Failover configuration:
+#########################
+#
+# It is possible to create a VNIC interface with failover configuration
+# by using the PRIMARY and SECONDARY commands. The IOC specified in
+# the PRIMARY command will be used as the primary IOC for this interface
+# and the IOC specified in the SECONDARY command will be used as the
+# fail-over backup in case the connection with the primary IOC fails
+# for some reason.
+#
+# PRIMARY and SECONDARY commands are written in the following way:
+#
+# PRIMARY={DGID=...;IOCGUID=...; IOCSTRING=...;INSTANCE=... } - 
+# IOCGUID, and INSTANCE must be values that are unique to the primary interface
+#
+# SECONDARY={DGID=...;IOCGUID=...; INSTANCE=... } - 
+# IOCGUID, and INSTANCE must be values that are unique to the secondary interface
+#
+# OR it can also be specified without using DGID, like this:
+#
+# PRIMARY={IOCGUID=...; INSTANCE=... } - IOCGUID may be substituted with 
+#   IOCSTRING.  IOCGUID, IOCSTRING, and INSTANCE must be values that are
+#	unique to the primary interface
+#
+#  SECONDARY={IOCGUID=...; INSTANCE=... } - bring up a secondary connection for
+#	fail-over.  IOCGUID may be substituted with IOCSTRING.  IOCGUID, IOCSTRING,
+#   and INSTANCE values to be used for the secondary connection
+#
+#
+#Examples of failover configuration:
+#
+#{CREATE; NAME="veth1";
+#        PRIMARY={ DGID=0xfe8000000000000000066a0258000001; IOCGUID=0x66a0130000001; IOCSTRING="Chassis 0x00066A00010003F2, Slot 1, IOC 1";
+#          INSTANCE=1; PORT=1; }
+#        SECONDARY={DGID=0xfe8000000000000000066a0258000001; IOCGUID=0x66a0230000001; IOCSTRING="Chassis 0x00066A00010003F2, Slot 1, IOC 2";
+#          INSTANCE=1; PORT=2; }
+#}
+#
+#  {CREATE; NAME="eioc2";
+#   PRIMARY = {IOCGUID=0x66A0130000105; INSTANCE=0; PORT=1; }
+#   SECONDARY = {IOCGUID=0x66A013000010C; INSTANCE=0; PORT=2; }
+#  }
+#
+#Example of configuration with IB_MULTICAST
+#
+#  {CREATE; NAME="eioc2";
+#   PRIMARY = {IOCGUID=0x66A0130000105; INSTANCE=0; PORT=1; IB_MULTICAST=FALSE; }
+#   SECONDARY = {IOCGUID=0x66A013000010C; INSTANCE=0; PORT=2; IB_MULTICAST=FALSE; }
+#  }
+#
+
diff --git a/qlogic_vnic.cfg.sample b/qlogic_vnic.cfg.sample
deleted file mode 100644
index c74b154..0000000
--- a/qlogic_vnic.cfg.sample
+++ /dev/null
@@ -1,102 +0,0 @@
-# QLogic VNIC configuration file
-#
-# This file documents and describes the use of the
-# VNIC configuration file qlogic_vnic.cfg. This file
-# should reside in /etc/infiniband/ql_vnic.cfg
-#
-# 
-# Knowing how to fill the configuration file
-###############################################
-#
-# For filling the configuration file you need to know
-# some information about your VEx device. This information
-# can be obtained with the help of the ibvexdm tool.
-# ibvexdm -e will give IOCGUID information about the VEx IOCs
-# whereas ibvexdm -s will give IOCSTRING information.
-# Refer to QLogic_VNIC.README available as part of the documentation
-# for more information about the ibvexdm tool.
-#
-#
-# General structure of the configuration file
-###############################################
-#
-# All lines beginning with a # are treated as comments.
-#
-# A simple configuration file consists of CREATE commands
-# for each VNIC interface to be created. 
-#
-# A simple CREATE command looks like this:
-#
-#  {CREATE; NAME="eioc1"; IOCGUID=0x66A013000010C;
-#     RX_CSUM=TRUE;
-#     HEARTBEAT=100; }
-#
-#Where 
-#
-#NAME - The device name for the interface
-#
-#IOCGUID - The GUID of the IOC to use.  All of the IOC GUIDS detected on
-#      the fabric can be found with "ibvexdm -e". This can be used instead
-#      of IOCSTRING.  It can not be used at the same time as IOCSTRING.
-#
-#IOCSTRING - The IOC Profile ID String of the IOC to use.  All of the IOC
-#      Profile ID Strings detected on the fabric can be found with
-#      "ibvexdm -s". This can be used instead of IOCGUID.
-#      It can not be used at the same time as IOCGUID.
-#
-#INSTANCE - Defaults to 0.  Range 0-255.  If a host will connect to the
-#	same IOC more than once, each connection must be assigned a unique
-#       number.  
-#
-#RX_CSUM - defaults to TRUE.  When true, indicates that the receive checksum
-#	    should be done by the VEx
-#
-#HEARTBEAT - defaults to 100.  Specifies the time in 1/100'ths of a second
-#	    between heartbeats
-#
-#PORT - Specification for local HCA port. First port is 1.
-#
-#HCA - Optional HCA specification for use with PORT specification. First HCA is 1.
-#
-# Example of IOCGUID based configuration:
-#
-#  {CREATE; NAME="eioc1"; IOCGUID=0x66A013000010C;
-#     RX_CSUM=TRUE;
-#     HEARTBEAT=100; }
-#
-# Example of IOCSTRING based configuration:
-#
-#  {CREATE; NAME="eioc1"; IOCSTRING="Chassis 0x00066A0050000018, Slot 2, IOC 1";
-#     RX_CSUM=TRUE;
-#     HEARTBEAT=100; }
-#
-#
-#Failover configuration:
-#########################
-#
-# It is possible to create a VNIC interface with failover configuration
-# by using the PRIMARY and SECONDARY commands. The IOC specified in
-# the PRIMARY command will be used as the primary IOC for this interface
-# and the IOC specified in the SECONDARY command will be used as the
-# fail-over backup in case the connection with the primary IOC fails
-# for some reason.
-#
-# PRIMARY and SECONDARY commands are written in the following way:
-#
-# PRIMARY={IOCGUID=...; INSTANCE=... } - IOCGUID may be substituted with 
-#   IOCSTRING.  IOCGUID, IOCSTRING, and INSTANCE must be values that are
-#	unique to the primary interface
-#
-#  SECONDARY={IOCGUID=...; INSTANCE=... } - bring up a secondary connection for
-#	fail-over.  IOCGUID may be substituted with IOCSTRING.  IOCGUID, IOCSTRING,
-#   and INSTANCE values to be used for the secondary connection
-#
-#
-#Example failover configuration:
-#
-#  {CREATE; NAME="eioc2";
-#   PRIMARY = {IOCGUID=0x66A0130000105; INSTANCE=0; PORT=1; }
-#   SECONDARY = {IOCGUID=0x66A013000010C; INSTANCE=0; PORT=2; }
-#  }
-#
-




More information about the ewg mailing list