APIs in Category: ic | 7-Mode API version 1.21

ic-config-show ic-get-error-stats ic-get-infiniband-hw-stats ic-get-infiniband-port-stats ic-get-perf-stats ic-reset-nic ic-reset-nic-auto-off ic-reset-nic-auto-on ic-zero-error-stats | ic-reset-nic* set of APIs implement the interconnect reset feature that allows maintaining high availability in cases when customers are hitting a known problem where the interconnect device hangs and otherwise won't recover until the node is rebooted. There are two ways to reset: manual and automatic. A manual reset will immediately reboot the hardware, saving from haivng to disruptively reboot the node. An automatic reset is triggered when ONTAP detects that the hardware is hung. This detection logic has a timeout period that can be set by the user. If the timeout value is 10 seconds, then a reset will be triggered after 10 seconds from when the device was determined to be hung.

NetApp Manage ONTAP

ic-config-show | [top]

> Print HA Interconnect configuration information.

> Output Name | Range | Type | Description
> ic-config-details |  | ic-config-details | HA Interconnect configuration information.

> Errno | Description
> EINTERNALERROR |  |
> ENOPARTNERIFC |  |

ic-get-error-stats | [top]

> Get Interconnect and nvram related statistics and device specific counters

> Input Name | Range | Type | Description
> sfo-rv-name |  | string optional | It give error counters specific to either cfo_rv or cfo_rv1. If it is not given then it displays error counters of cfo_rv.
> verbose |  | boolean optional | If set to true the output is detailed.
> Output Name | Range | Type | Description
> active-logical-link |  | integer optional | The current logical link Possilbe values: -1, 0, 1 Range : [0..2^32-1]
> nvram-hardware-error-stats |  | ic-counter[] optional | List of nvram hardware error counters
> nvram-hardware-perf-stats |  | ic-counter[] optional | List of nvram hardware performance counters
> nvram-per-port-counters |  | nvram-per-port-counters-info[] optional | Port counters list for all available ports
> nvram-software-counters |  | ic-counter[] optional | List of basic nvram counters
> peer-connect-stats |  | ic-counter[] | List of basic Rendezvous counters
> per-link-parameters |  | per-link-parameters-info[] optional | Link Parameters list for all available ports
> sfo-connection-state |  | string | Connection state with peer. Possible value: "not connected", "waiting for connected", "waiting for not connected", "connected", "waiting for teardown", "unknown".
> sfo-nic-used |  | integer | The interconnect adapter in use Range : [0..2^32-1]
> sfo-rv-role |  | string optional | Role of sfo rv (rendezvous connection used for the cluster interconnect). Possible value: "source_rv", "dest_rv", "not applicable", "none".

> Errno | Description
> EINTERNALERROR |  |

ic-get-infiniband-hw-stats | [top]

> Retrieve Infiniband hardware health and status statistics

> Output Name | Range | Type | Description
> context-stats |  | ic-counter[] | End to end connection error counters. Counter names: invalid_ee_errors invalid_ee_state_errors
> doorbell-stats |  | ic-counter[] | Number of errors relating to ringing the doorbell on a RDMA transfer to notify that a new work entry has been added to a queue. Counter name: bad_doorbells
> overflow-stats |  | ic-counter[] | List of overflow counters. Counter names: cq eq
> packet-stats |  | ic-counter[] | List of packet discarded counters. Counter names: ud_discarded uc_discarded
> remote-abort-stats |  | ic-counter[] | Remote Aborted error counters. Counter name: remote_aborted_errors
> remote-ops-stats |  | ic-counter[] | Remote operations error counters. Counter name: remote_opperations_errors
> requester-stats |  | ic-counter[] | List of Basic IC performance and error counters for the side of the infiniband connection initiating the data transfer. Counter names: local_lenth_errors local_qp_operation_errors local_protection_errors wr_flushed_errors memory_window_bind_errors bad_response_errors remote_invalid_request_errors remote_access_errors transport_retries_exceeded_errors rnr_nak_retries_exceded_errors rnr_naks_received out_of_sequence_naks_received local_ee_operation_errors resync_operations
> responder-stats |  | ic-counter[] | List of Basic IC performance and error counters for the side of the infiniband connection that is receiving the data. Counter names: local_length_errors local_qp_operation_errors local_protection_errors wr_flushed_errors local_access_errors remote_invalid_request_errors remote_access_errors rnr_naks_sent out_of_sequence_requests_received bad_multicast_packets_received local_ee_operation_error resync_operations

> Errno | Description
> EINTERNALERROR |  |

ic-get-infiniband-port-stats | [top]

> Retrieve Infiniband port health and status statistics

> Output Name | Range | Type | Description
> port1-stats |  | ic-counter[] | MLX4 port 1 Stats including: packets_tx packets_rx data_tx data_rx wait_tx symbol_error link_error_recovery link_down error_rx remote_physical_error switch_relay_error_rx discard_tx constraint_error_tx constraint_error_rx local_link_integrity_error excessive_buffer_overrun_error vl15_dropped
> port2-stats |  | ic-counter[] | MLX4 port 2 Stats including: packets_tx packets_rx data_tx data_rx wait_tx symbol_error link_error_recovery link_down error_rx remote_physical_error switch_relay_error_rx discard_tx constraint_error_tx constraint_error_rx local_link_integrity_error excessive_buffer_overrun_error vl15_dropped

> Errno | Description
> EINTERNALERROR |  |

ic-get-perf-stats | [top]

> Get Interconnect related performance statistics

> Output Name | Range | Type | Description
> ic-perf-details |  | ic-counter[] | List of Basic IC performance counters
> virtual-interface-socket-stats |  | virtual-interface-socket-stat-info[] | Virtual Interface socket statistics

> Errno | Description
> EINTERNALERROR |  |

ic-reset-nic | [top]

> Reset the interconnect device if the device is determined to be in an unstable state by the administrator or NetApp Global Support. An unstable state can consist of unsynchronized NVRAM logs causing failover functionality to be disabled, RDMA connection being reported as down, EMS is reporting loss of heartbeat between nodes, or the QP is in a disconnected state. Upon execution the interconnect device will be reset and reprogrammed to restore the High Availability (HA) interface.

> Errno | Description
> EINTERNALERROR |  |

ic-reset-nic-auto-off | [top]

> Disable auto reset functionality for the interconnect device when an unstable state is detected. An unstable state can consist of unsynchronized NVRAM logs causing failover functionality to be disabled, RDMA connection being reported as down, EMS is reporting loss of heartbeat between nodes, or the message transport mechanism is in a disconnected state. Upon execution the automatic reset detection logic will be disabled.

> Errno | Description
> EINTERNALERROR |  |

ic-reset-nic-auto-on | [top]

> Enable auto reset functionality for the interconnect device when an unstable state is detected. An unstable state can consist of unsynchronized NVRAM logs causing failover functionality to be disabled, RDMA connection being reported as down, EMS is reporting loss of heartbeat between nodes, or the message transport mechanism is in a disconnected state. Upon execution the automatic reset detection logic will be disabled.

> Errno | Description
> EINTERNALERROR |  |

ic-zero-error-stats | [top]

> Zeroes out the interconnect error stats

> Errno | Description
> EINTERNALERROR |  |

Element definition: ic-config-details | [top]

> Details on HA configuration

> Name | Range | Type | Description
> ic-rlib-if |  | ic-rlib-if-info[] optional | Interface configuration info for rlib (RDMA, Remote Direct Memory Access library) interconnects.
> ic-system-id |  | ic-system-id-info[] | Per node information.
> interconnect-type |  | string | The type of HA interconnect present. Possible value: "iwarp", "infiniband".
> interface-config |  | interface-config-info[] optional | Interface configuration info only for interfaces used by iWarp.

Element definition: ic-counter | [top]

> IC counters

> Name | Range | Type | Description
> counter-name |  | string | Name of the counter
> counter-value |  | integer | Value of the counter Range : [0..2^64-1]

Element definition: nvram-per-port-counters-info | [top]

> List of port counters for an nvram port

> Name | Range | Type | Description
> counter-list |  | ic-counter[] optional | list of counters for a port.
> port-number |  | integer | Numerical Id of the port. Range : [0..2^32-1]

Element definition: per-link-parameters-info | [top]

> Per link parameters

> Name | Range | Type | Description
> link-number |  | integer | The link id. Range : [0..2^32-1]
> link-state |  | string | State of the link Possible values: "up", "down"
> num-mad-received |  | integer | Number of Management Datagram (MAD) packets received Range : [0..2^32-1]
> num-mad-sent |  | integer | Number of Management Datagram (MAD) packets sent Range : [0..2^32-1]
> num-recv-desc |  | integer | Number of receive descriptors posted Range : [0..2^32-1]
> port-mtu |  | integer | Port Max Transfer Unit Range : [0..2^32-1]
> port-state |  | string | Port state Possible values: "port down", "port initialize", "port armed", "port active"

Element definition: virtual-interface-socket-stat-info | [top]

> Per channel Virtual Interface socket statistics

> Name | Range | Type | Description
> channel-number |  | integer | The channel for which the statistics are being reported Possible values: 0, 1. Range : [0..2^32-1]
> per-channel-counters |  | ic-counter[] | Per channel Virtual Interface socket counters.

Element definition: ic-counter | [top]

> IC counters

> Name | Range | Type | Description
> counter-name |  | string | Name of the counter
> counter-value |  | integer | Value of the counter Range : [0..2^64-1]

Element definition: ic-rlib-if-info | [top]

> Interface information for each rlib interface.

> Name | Range | Type | Description
> interface-ip |  | string | Interface IP Address.
> interface-name |  | string | Name of the interface.

Element definition: ic-system-id-info | [top]

> Per node information.

> Name | Range | Type | Description
> is-connection-initiator |  | boolean | If set to true, the node is the server node with the larger sysid.
> node |  | string | Whether local or partner node.
> system-id |  | integer | System ID of the node. Range : [0..2^64-1]

Element definition: interface-config-info | [top]

> Configuration for one interface.

> Name | Range | Type | Description
> aliases |  | ip-address-info[] optional | List of interface IP aliases. Cannot include ipv4 addresses if v4-primary-address is empty, and cannot include ipv6 addresses if v6_primary-address is empty (except for autoconfigured ipv6 addresses).
> dad-attempts |  | integer optional | Number of IPv6 Duplicate Address Detection attempts for this interface.
> flowcontrol |  | string optional | Specifies the flow control type. Possible values: {none | receive | send | full} The meaning of these values is: "none" (no flow control), "receive" (only receive flow control frames), "send" (only send flow control frames), and "full" (send and receive flow control frames). If the flowcontrol option is not specified, the default value is interface-dependent. Fiber Interfaces: If the interface detects that the link partner auto-negotiates, then the operational flow control setting is negotiated (and the configured or default setting for flow control is ignored). Not all interfaces have a flowcontrol (e.g. loopback does not) Default is NIC-specific.
> interface-name |  | string | Name of the interface.
> ipspace-name |  | string | Name of ipspace that the interface belongs to.
> is-enabled |  | boolean optional | Administrative status. (true: interface is administratively up). Default is true.
> is-nfo-enabled |  | boolean optional | true: network failover is configured for this interface. Default is false;
> is-trusted |  | boolean optional | true: interface is trusted. Default is true.
> is-wins-enabled |  | boolean optional | true: interface is advertised to the WINS server. Default is true.
> mac-address |  | string optional | Interface mac address. Not provided for "lo" or "vh" interfaces
> mediatype |  | string optional | Specifies the Ethernet media type used. Possible values: {tp | tp-fd | 100tx | 100tx-fd | 1000fx | 10g-sr | auto} 10/100, 100/1000, and 10/100/1000 Mbps Copper Interfaces: The acceptable types (which vary from card to card) are "tp" (Half-duplex 10BaseT RJ-45 twisted-pair), "tp-fd" (Full duplex 10Base-T RJ-45 twisted-pair), "100tx" (Half-duplex 100Base-T RJ-45 twisted-pair), "100tx-fd" (Full duplex 100Base-T RJ-45 twisted-pair), and "auto" (Auto RJ-45 twisted-pair). The default media type is set to "tp" or to "auto" where applicable. 1000 Mbps Fiber Interfaces: The Gigabit Ethernet Controllers only support the mediatype "auto". The Gigabit Ethernet Controllers only support full-duplex. 10G bps Fiber Interfaces: The 10G TOE/Ethernet Controllers support the mediatype "10g-sr" and "auto". The interface does not do auto-negotiatition, it only supports 10Gb speed, full duplex. Not all interfaces have a mediatype (e.g. loopback does not)
> mtusize |  | integer optional | Maximum Transfer Unit (MTU) of an interface. Range: 296-9196 Default is 1500.
> partner |  | string optional | Name of CFO partner interface that will failover to this interface. Default is no partner.
> port-role |  | string optional | Possible values: [mgmt|storage-acp|cluster|data]. Default is data. Mgmt role cannot be modified in 7Mode.
> v4-primary-address |  | ip-address-info optional | The primary ipv4 address for this interface If missing, it means the interface has no ipv4 addresses.
> v6-primary-address |  | ip-address-info optional | The primary ipv6 address for this interface If missing, it means the interface has no statically configured ipv6 addresses.

Element definition: ip-address-info | [top]

> A configured IP Address

> Name | Range | Type | Description
> addr-family |  | string | Address family. Possible values: {af-inet6 | af-inet}.
> address |  | ip-address-or-hostname | IP address.
> broadcast |  | ip-address optional | broadcast address. Default if not specified is computed from IP address and netmask. Not used for IPV6. Must be consistent with netmask.
> creator |  | string | Entity responsible for creation of address. "vfiler:" if created by d-blade for vfiler. "vserver:" if created by n-blade with cluster-wide scope.
> lif-type |  | string optional | type of LIF. Possible values are 7G, Data, Cluster, Mgmt, ClusMgmt, InterCluster
> netmask-or-prefix |  | netmask-or-prefix optional | netmask or prefix Default if not specified is autogenerated classful.
> no-ddns |  | boolean optional | true: the address is not advertised to ddns. Default if not specified is true.

Element definition: ip-address | [top]

> One ip address, in dotted-decimal format (for example, "192.168.11.12"). If IPv6 address then, it should be in the format a:b:c:d:e:f:g:h (for example, fd20::44).

> [none]

Element definition: ip-address-or-hostname | [top]

> IP address string. For example, 198.18.100.12, or "`hostname`-e0c" (backquoted hostname is allowed) or "toaster" (assuming toaster resolves to an IP address) or fd20:8b1e:b255:104:230:48ff:fe8c:6326

> [none]

Element definition: netmask-or-prefix | [top]

> netmask. Possible values: dotted decimal or hex integer (range: 0x1 .. 0xffffffff) or '/' followed by hex integer (range: 0x1 .. 0x40) Default if not specified is classful: Class A address - 255.0.0.0 or 0xff000000 or /8 Class B address - 255.255.0.0 or 0xffff0000 or /16 Class C address - 255.255.255.0 or 0xffffff00 or /24 IPV6 address prefix - /1 through /128

> [none]