Since I didn't receive anything but a "its too complex" in
response to my previous question, let me ask again: why are
you inventing a new sysfs interface (combined with ~15 module
parameters) instead of using the existing standard interfaces
for this?
Ramachandra K wrote:
+sysfs interface:
+----------------
+
+The QLogic Virtual NIC module when loaded on host creates following set of
+files into the sysfs:
+
+/sys/class/infiniband_qlgc_vnic/interfaces
+
+ create_vnic (0200) To create a new VNIC interface, write the name
+ of the interface to this file.
+
+ delete_vnic (0200) To delete an existing VNIC interface, write
+ name of that VNIC interface to this file.
This is exactly what rtnl_link is for.
+/sys/class/infiniband_qlgc_vnic/interfaces/<VNIC-interface-name>/
+
+ vnic_state (0444) State of the VNIC interface.
This I don't understand - you seem to be registering and
unregistering the net_device based some state machine,
in some cases even triggered by timers.
Whats the idea behind this?
+
+ current_path (0444) In case of failover configuration, which
+ connection among the primary and secondary is
+ currently being used.
+
+ multicast (0644) Get/Set IB multicast value for the VNIC
+ interface. Only root can Enable/Disable IB
+ multicast for that VNIC interface.
+
+ rx_csum (0644) Get/Set receive checksum boolean value for VNIC
+ interface. Only root can Enable/Disable the
+ receive checksum operation for that VNIC
+ interface.
+
+ tx_csum (0644) Get/Set transmit checksum boolean value for VNIC
+ interface. Only root can Enable/Disable the
+ transmit checksum operation for that VNIC
+ interface.
Why is this not done using ethtool?
+Example:
+--------
+
+QLogic VNIC sysfs interface can be used directly to create a VNIC interface.
+
+# echo the name of new VNIC interface to create_vnic
+echo -n veth1 > /sys/class/infiniband_qlgc_vnic/interfaces/create_vnic
+
+# echo parameters to configure the VNIC interface. Some of these are
+# interface level parameters which needs to be passed only once per VNIC
+# interface.
+
+echo -n true > /sys/class/infiniband_qlgc_vnic/interfaces/veth1/rx_csum
+echo -n false > /sys/class/infiniband_qlgc_vnic/interfaces/veth1/tx_csum
+echo -n false > /sys/class/infiniband_qlgc_vnic/interfaces/veth1/multicast
+
+echo -n 00066a01de000037 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/primary_path/ioc_guid
+echo -n fe8000000000000100066a11de000037 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/primary_path/dgid
+echo -n ffff >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/primary_path/pkey
+echo -n 0 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/primary_path/instance
+echo -n 100 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/primary_path/heartbeat
+string="EVIC in Chassis 0x00066a00db000010, Slot 4, Ioc 1"
+echo -n $string >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/primary_path/ioc_string
+
+# Trigger the connection establishment process for the path by choosing
required
+# HCA and IB port combination.
+
+echo -n veth1 > /sys/class/infiniband_qlgc_vnic/vnic-mlx4_0-1/create_primary
+
+# In case of failover configuration, pass the parameters of the failover
+# connection to the driver and trigger its connection establishment
+# process.
+
+echo -n 00066a01de000037 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/secondary_path/ioc_guid
+echo -n fe8000000000000100066a11de000037 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/secondary_path/dgid
+echo -n ffff >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/secondary_path/pkey
+echo -n 1 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/secondary_path/instance
+echo -n 100 >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/secondary_path/heartbeat
+string="EVIC in Chassis 0x00066a00db000010, Slot 4, Ioc 1"
+echo -n $string >
/sys/class/infiniband_qlgc_vnic/interfaces/veth1/secondary_path/ioc_string
+
+echo -n veth1 > /sys/class/infiniband_qlgc_vnic/vnic-mlx4_0-2/create_secondary
+
+# An interface can be deleted by echoing the name of the interface to be
deleted
+# to delete_vnic file
+echo -n veth1 > /sys/class/infiniband_qlgc_vnic/interfaces/delete_vnic
This clearly shows the advantage of being able to use echo
for configuration.
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general