WO2016204777A1 - Network communications - Google Patents

Network communications Download PDF

Info

Publication number
WO2016204777A1
WO2016204777A1 PCT/US2015/036591 US2015036591W WO2016204777A1 WO 2016204777 A1 WO2016204777 A1 WO 2016204777A1 US 2015036591 W US2015036591 W US 2015036591W WO 2016204777 A1 WO2016204777 A1 WO 2016204777A1
Authority
WO
WIPO (PCT)
Prior art keywords
port
switch
principal
target
network switch
Prior art date
Application number
PCT/US2015/036591
Other languages
French (fr)
Inventor
Vivek Agarwal
Rupin T MOHAN
Krishna PUTTAGUNTA
Original Assignee
Hewlett Packard Enterprise Development LP.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP. filed Critical Hewlett Packard Enterprise Development LP.
Priority to PCT/US2015/036591 priority Critical patent/WO2016204777A1/en
Publication of WO2016204777A1 publication Critical patent/WO2016204777A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Definitions

  • Switched fabric topologies include network nodes interconnected via one or more network switches. Switched fabric networks spread network traffic across multiple physical Sinks resulting in high tola! throughput
  • FC Fibre Channel
  • FIG- 1 illustrates an example storage area network.
  • F!G. 2 illustrates an example switch with principal ports.
  • FIG. 3 depicts an example request defined in transport information units.
  • F!G. 4 depicts an example response defined in transport
  • FIG. 5 depicts an example get port type except request.
  • FIG- 6 depicts an example dataflow for target device based network communication.
  • FSG- 7 is a flowchart of an example method for target device based network communication.
  • FC signaling can run on an electrical interface in addition to fiberoptic cables.
  • the Fibre Channel Protocol (FCP) is a transport protoco! (similar to TCP used in IP networks) that can transport SCSI commands over FC networks.
  • SAN deployments that use FC protocols typically include initiating computing systems that access target storage devices through FC fabric switches. The initiating computing systems, the fabric switches, and the target storage devices each perform various corresponding FC functions. For example, initiating computing systems initiate various requests, such as read/Write SCSI requests. Target storage devices transfer input/output data through Logical Unit Numbers (LUNs).
  • FC fabric switches create the FC fabric to route signals from point-to-point (e.g., from a target storage device to an initiating computer system).
  • a switch includes functionality for performing various configuration and operational functions using information exchanged with a target device over a specialized port.
  • the specialized port is referred to herein as a "principal port" or "P_port ⁇
  • a target device such as a target storage device, can be connected to the switch by a principal port. Once the target device determines that a port by which it is connected to the switch is a principal port, it can query the switch for information that defines or describes the capabilities or functionality of the switch.
  • the information that defines the capabilities or functionality of the switch can be provided to the target device as a template that can be customized based on the characteristics of the switch and/or requirements or policies that govern the initiating computer system, the network fabric, or the target device.
  • the target device can then parse the template and generate requests and responses based on the information contained in the template.
  • the terms “a” and “an” are intended to denote at least one of a particular element, the term “includes” means includes but not limited to, the term “including” means including but not limited to, and the term “based on” means based on at least in part.
  • FIG. 1 depicts an example storage area network (SAN) 100 with target device-based configuration of network communication.
  • SAN storage area network
  • FIG. 1 may include additional elements and that some of the elements depicted therein may be removed and/or modified without departing from a scope of the SAN 100.
  • storage area network or "SAN” are used to refer to dedicated networks that provides access to consolidated data storage.
  • SANs can be used to enhance storage devices, such as disk arrays, tape libraries, emu ⁇ juivouuAva, eiuuesaiuie iu aoi voia au u ieii u io uovii ⁇ D9 ⁇ ⁇ locally attached devices to the operating system of a computing device.
  • a SAN can include a network of storage devices that are generally not accessible through a local area network (LAN) by other devices.
  • LAN local area network
  • example SAN 100 can include multiple host devices 105, a switch 110, and multiple target devices 130.
  • Host devices 105 can include any type of computing device or computing system that can communicate over a corresponding network connection 107 with the switch 110.
  • SAN 100 can include N, where N is a natural number, host devices 105, such as server computers, virtual computing systems or virtual machines, desktop computers, laptop computers, and the like.
  • Switch 110 can be any type of end-to-end networking type switch, such as an FC switch, a Fibre Channel over Ethernet (FCoE) switch, Internet smew lAJiiipuiei system iiiiei iciiv ( ⁇ ) swnuii, ui uic nive. in veiiiuus implementations, the switch 110 can include switching logic 111 and switch Attorney Docket No. 84171544 4 templates 113 corresponding to the type of switch and/or protocol used within the SAN 100.
  • FCoE Fibre Channel over Ethernet
  • the switching logic 111 can include multiple logical switches, each of which can be associated with or configured as a port of the switch 110.
  • the switch template 113 can include information stored on a memory in the switch 110. Such information can include configuration and settings data that describe or define the functionality or capabilities of switch 110. As shown in example switch template 113A, the information can include quality of service and security for the ports, indications of port initiator modes, indications of switch boot from target capabilities, input/output timeout settings, buffer credit tuning information, and the like.
  • the target devices 130 can be coupled to the switch 110 using various communication ports associated with or established on logical switches in the switching logic 111.
  • the target devices 120 can be connected to the switch 110 through a principal port 120 and a node port (N_port) 121.
  • a target device 130 can include a processor 131 and a memory 133.
  • the processor 131 may be a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), or the like.
  • the processor 131 is a hardware component, such as a circuit.
  • the memory 133 can include a volatile or nonvolatile memory, such as dynamic random access memory (DRAM), electrically erasable programmable read-only memory (EEPROM),
  • MRAM magnetoresistive random access memory
  • CD-ROM compact disc read only memory
  • DVD-ROM digital video disc read only memory
  • the memory 133 can store executable code accessible to the processor 131 that include instructions that when executed by the processor 131 cause the processor to implement various functionality of the target device 130 described herein.
  • the memory can include principal port code 135 that the processor 131 can execute to initiate target device- based configuration of network communication using the switch 110 and/or SAN 100, according to implementations of the present disclosure.
  • example SAN 100 can include M target devices 130, where M is a natural number.
  • Target devices 130 can include storage devices suitable for deployment in SAN 100, such as disk arrays, tape libraries, optical jukeboxes, and the like.
  • a target device 130 can include functionality and subcomponents for internal operations (e.g., internal data buses, data retrieval logic, mechanical media handlers, etc.) and communicating with the host devices 105 and switch 110.
  • the target devices 130 can include executable code, such as P_port code, stored on the memory 135 that the processor can execute to initiate communication with switch 110 using corresponding network interfaces (not shown) over connections 120 and 121.
  • Connection 120 is a P_Port and connections 121 can function as backup or secondary redundant P_Ports. In case of any failover, target device 130 can communicate with switch through connection 121 as P_Port instead of connect! on120.
  • FIG. 2 illustrates additional details of the components and functionality of switch 110 according to an example implementation of the present disclosure.
  • the switch 110 can include a processor 115 and a memory 117. Similar to the processor 131 in the target device, processor 115 may be a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), or the like. According to an example implementation, the processor 115 is a hardware component, such as a circuit.
  • the memory 117 can include a volatile or non-volatile memory, such as dynamic random access memory (DRAM), electrically erasable
  • EEPROM programmable read-only memory
  • MRAM magnetoresistive random access memory
  • memristor flash memory
  • CD-ROM compact disc read only memory
  • DVD-ROM digital video disc read only memory
  • the processor 115 can access executable code stored in the memory 117 that cause the processor 115 to perform the operations and/or implement the functionality disclosed herein.
  • the executable code may be stored in memory 117.
  • Example code stored on the memory 117 can include
  • the memory 117 can include data readable by the processor 115 that describes current or possible configurations or settings of switch 110.
  • the memory may include P_port codes 119 or switch template 113.
  • the P_port codes can include information that define the operations that processor 115 is to perform to control or configure the switching logic 111 in respond to specific control commands received from a host device 105 or target device 130.
  • the Pjport codes 119 can include command codes or identifiers associated with instructions that when executed by the processor cause the processor 115 to configure the logical switches/ports 112 of the switching logic 111 with specific port functionality.
  • the logical switches/port 112 can be set to include multiple P_ports 120 and other port types (e.g., N-ports) 121 on the target device side and port types 107 on the host device side.
  • a P_port 120 can include the functionality of a node port, or N_port, in a FC or other end-to-end protocol that includes an indication that it is a principal port.
  • P_port and principal port can be used interchangeably to refer to ports through which a target device 130 can exchange data with and query the switch 110 for switch configuration or capabilities. Accordingly, when the switching logic 111 configures specific logical switches/ports 112 as P _ports 120, those P _ports 120, and other ports 121 , can be coupled to
  • target devices 130 can be coupled to the switch 110 by multiple connections.
  • a target device 130 can be coupled to the switch 110 by a P_ports 120 and/or multiple Njports 121.
  • Any of the communication ports or connections can be established by the switching logic 111 can be point-to-point connections.
  • one of the P_ports 120 can be designated or operated as the primary P_port.
  • a primary P_port can be used as the pathway for sending information about the switch 110 to the target device 130.
  • the primary P_port can be used to distribute configuration information for all connections between a target device 130 and a swith 110.
  • a primary P_port in various implementations can save bandwidth on the other ports connecting the target device 130 to the switch 110.
  • another P_port 120 can bet designated as a backup primary P_port to provide redundancy and to avoid a single points of failure.
  • target device 130 determines that it is coupled to the switch 110 through a P_port 120, then is can perform additional operations through that port to discover the configuration and capabilities of the switch 110.
  • a target device 130 can send a get port type (GPT) command through the port through which it is coupled to the switch 110 (e.g., send the GPT command to a fabric name server) to determine if that particular port is a Pjport. If the response to the GPT command indicates that the particular port is a P_port, then the target device 130 can use P_port specific commands and queries to communicate with the switch 110 to perform configuration and subsequent communication operations.
  • GPT get port type
  • the target device 130 can send a query to the switch 110 through a corresponding P_port 120 for information regarding the capabilities and configuration of the switch 110.
  • the switch can respond by sending information from or a copy of switch template 113.
  • the switch template 113 can include information about the switch port capabilities and functionality.
  • the switch template can include information depicted ip example switch template 113A, such as ⁇ Port$ QoS and
  • ⁇ Ports QoS and Security> flag can indication whether the switch 110 allows for switch port QoS and security configuration can be pushed from a target device 130.
  • the ⁇ Port initiator mode> indicator can indicate whether the switch 110 allows for switch port mode configuration changes pushed from a target device 130.
  • the ⁇ Switch boot from target> flag can indicate whether the switch 110 allows for booting the switch with remote SAN image pushed through target devices.
  • the ⁇ l/0 time out settings> flag can indicate an update input/output timeout for particular commands pushed through a target device 130.
  • the ⁇ Buffer credit tuning> flag can indicate that the switch 110 can buffer updates for credits for long distances pushed through target.
  • the switch template can include information thai can be used to configure the switch 1 10.
  • the processor 115 can execute instructions using information from a switch template to configure the logical switch 11 1 to include a logical switch/port 112 to have a GPT response that uses one reserved byte to indicate support for P__ports,
  • the processor 115 can also execute instructions to configure the logical switch 1 1 1 to respond with the switch template 1 13.
  • the target devices 130 can determine whether if it is connected to a principal post by detecting the one reserved byte indicating support for P__ports on a connection through which it is connected to the switch 110. When a P_port is presence, the target device 130 can request and receive a switch template 113 from the switch 1 10 over the P micport.
  • FIGS, 3 and 4 depict sets of requests and responses defined in transport information units (CTJUs) that can be used in various transport information units (CTJUs) that can be used in various transport information units (CTJUs) that can be used in various
  • FIG. 3 defines an example request CT_U 300.
  • the request CT_U 300 includes a number of items 301 and corresponding sizes 303.
  • example request CT_U 300 includes an 8 byte CT_U preamble, the 1 byte reserved flag, and a 3 byte port identifier.
  • FIG, 4 defines an example GPT except request 400.
  • the GPT accept request 400 includes items 401 and a corresponding sizes of 403.
  • the GPT except request 400 can include an 8 byte CT_U preamble, a 2 byte reserved flag, a 1 byte port type, and a I byte P_port flag.
  • FIG. 5 depicts an example definition of P_port flag field bits.
  • P_port flag field bits refers to the bit position in the GPT except request 400 about the existence of a P_port on a connection between the target device 130 and the switch 110.
  • bit positions at 7 through 1 I reserved, while bit position 0 can indicate that the corresponding port either supports principal port or does not support principal port (e.g. values of 1 or 0).
  • FIG.6 illustrates an example data flow 600 between the switch 110 and a target device 130 for target device-based configuration of network communication.
  • the target device 130 can generate and send a fabric linkup message over an available port to the switch 110.
  • the target device 130 can generate and send a get port type (GPT) query to the switch 110 on over the corresponding port.
  • the GPT query can be transmitted over the port to a fabric name server (not shown) to determine if the target device 130 is connected to the network fabric by a principal port, at reference 602.
  • the switch 110 can respond with a GPT response that includes an indication of P_port presence. If the GPT response includes an indication that the target device 130 is connected to the switch 110 by a P_ports (e.g. a P _port is present), then at reference 604 the target device 130 can generate and send a query for the P_port capabilities of the switch 110.
  • a P_ports e.g. a P _port is present
  • the switch 110 can transmit a switch template at reference 605.
  • the switch template can include information about the P_port capabilities through which the target device 130 is connected to the switch 110.
  • the target device 130 can then parse the switch template to determine the capabilities of the switch 110.
  • the content of the switch template and/or the capabilities of switch 110 can vary by manufacturer and/or the model or type of switch.
  • the target device can then issue subsequent requests based on the switch template.
  • the request messages can also be based on requirements of the target device 130.
  • communication between the host devices 105 and the target devices 130 will Attorney Docket No. 84171544 10 comply with any requirements of the network fiber, the target device 130, or the host device 105. For examD ⁇ le. communication between the host devices
  • All information about the configuration and communication enforcement within network fabric can be completed using in-band communication, commands, and controls based on the switch template.
  • FIG. 7 depicts a flowchart of an example method 700 target device- based configuration of a network fabric or network communication.
  • Method 700 can begin at box 710 in which logical switches 112 in a network fabric switch 110 are coupled to target devices 130. Multiple logical switches 112 having different FC type communication ports can be coupled to each target ucviue lou. rui CAaiiipic, uie laiyci ueviue ⁇ liaii ue lAJupieu ⁇ uic swuuii
  • the target device 130 can be coupled to the switch 110 by ports that include a subset of Fibre Channel F_port functionality.
  • a subset of the communication ports can be
  • a primary principal P_port can be used to transmit configuration and communication settings to the target device 130 that is can use for communicating on any or all of the other ports through which it is connected to the switch 110.
  • a single P-port 120 can exchange information that can be used for communication conducted on any port connection between the switch 110 and target device 130. For example, if target device 130 requests name server information from the switch/fabric, it can request the information over the P_port 120 only, and all the other target ports on that switch 110 or on other switches 110 in the same fabric can make use of that information for communication.
  • it is possible to use a P-port 120 for each switch however, it is possible to use one P_port fir entire fabric.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

In examples provided herein, a network switch includes a processor, a plurality of communication ports, and a non-transitory computer readable medium coupled to the processor. The computer readable medium can store instructions that when executed by the processor cause the processor to receive a linkup request from a target storage device on a principal port in the plurality of communication ports, establish a link with the target storage device comprising a connection on the principal port in response to the linkup signal, receive a query requesting capabilities associated with the principal port, and transmit a switch template to the target storage device through the principal port in response to the query.

Description

NETWORK COMMUNICATIONS
BACKGROUND
[0001] Switched fabric topologies include network nodes interconnected via one or more network switches. Switched fabric networks spread network traffic across multiple physical Sinks resulting in high tola! throughput One example of a switched fabric topology is Fibre Channel (FC). FC Is a highspeed network technology that can run gigabit rates and is often used for storage area networks (SAN) in enterprise storage,
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] FIG- 1 illustrates an example storage area network.
|0003] F!G. 2 illustrates an example switch with principal ports.
[0004] FIG. 3 depicts an example request defined in transport information units.
[0005] F!G. 4 depicts an example response defined in transport
information units,
[0006] FIG. 5 depicts an example get port type except request.
[0007] FIG- 6 depicts an example dataflow for target device based network communication.
[0008] FSG- 7 is a flowchart of an example method for target device based network communication.
DETAILED DESCRIPTION
[0009] FC signaling can run on an electrical interface in addition to fiberoptic cables. The Fibre Channel Protocol (FCP) is a transport protoco! (similar to TCP used in IP networks) that can transport SCSI commands over FC networks. SAN deployments that use FC protocols typically include initiating computing systems that access target storage devices through FC fabric switches. The initiating computing systems, the fabric switches, and the target storage devices each perform various corresponding FC functions. For example, initiating computing systems initiate various requests, such as read/Write SCSI requests. Target storage devices transfer input/output data through Logical Unit Numbers (LUNs). FC fabric switches create the FC fabric to route signals from point-to-point (e.g., from a target storage device to an initiating computer system).
[0010] In one example, the present disclosure describes techniques for configuring communication between network fabric switches and target devices using extensions of Fibre Channel (FC) ports and corresponding signaling. In various implementations, a switch includes functionality for performing various configuration and operational functions using information exchanged with a target device over a specialized port. According to implementations of the present disclosure, the specialized port is referred to herein as a "principal port" or "P_port\ For example, in switches that include multiple logical switches, a subset of the logical switches can be set up as principal ports. A target device, such as a target storage device, can be connected to the switch by a principal port. Once the target device determines that a port by which it is connected to the switch is a principal port, it can query the switch for information that defines or describes the capabilities or functionality of the switch.
[0011] In various example implementations, the information that defines the capabilities or functionality of the switch can be provided to the target device as a template that can be customized based on the characteristics of the switch and/or requirements or policies that govern the initiating computer system, the network fabric, or the target device. The target device can then parse the template and generate requests and responses based on the information contained in the template. By including intelligence at the switch level for configuring the communication between the initiating computer system and the target device, configuration and maintenance of the network can be automated and simplified, thus avoiding manual configuration performed by a user or scripted configuration performed by an initiating computing system.
[0012] For simplicity and illustrative purposes, the present disclosure is described by referring mainly to examples. In the following description, Attorney Docket No. 84171544 3 numerous specific details are set forth in order to provide a thorough understandina of the Dresent disclosure. It will be readilv aDDarent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the terms "a" and "an" are intended to denote at least one of a particular element, the term "includes" means includes but not limited to, the term "including" means including but not limited to, and the term "based on" means based on at least in part.
[0013] FIG. 1 depicts an example storage area network (SAN) 100 with target device-based configuration of network communication. It should be understood that the example SAN 100 depicted in FIG. 1 may include additional elements and that some of the elements depicted therein may be removed and/or modified without departing from a scope of the SAN 100. As used herein, the terms "storage area network" or "SAN" are used to refer to dedicated networks that provides access to consolidated data storage. SANs can be used to enhance storage devices, such as disk arrays, tape libraries, emu υμιιι^αι juivouuAva, eiuuesaiuie iu aoi voia au u ieii u io uovii<D9 αμμβαι ιιι\σ locally attached devices to the operating system of a computing device. A SAN can include a network of storage devices that are generally not accessible through a local area network (LAN) by other devices.
[0014] As shown, example SAN 100 can include multiple host devices 105, a switch 110, and multiple target devices 130. Host devices 105 can include any type of computing device or computing system that can communicate over a corresponding network connection 107 with the switch 110. As such. SAN 100 can include N, where N is a natural number, host devices 105, such as server computers, virtual computing systems or virtual machines, desktop computers, laptop computers, and the like.
[0015] Switch 110 can be any type of end-to-end networking type switch, such as an FC switch, a Fibre Channel over Ethernet (FCoE) switch, Internet smew lAJiiipuiei system iiiiei iciiv (ιουοι ) swnuii, ui uic nive. in veiiiuus implementations, the switch 110 can include switching logic 111 and switch Attorney Docket No. 84171544 4 templates 113 corresponding to the type of switch and/or protocol used within the SAN 100.
[0016] The switching logic 111 can include multiple logical switches, each of which can be associated with or configured as a port of the switch 110. The switch template 113 can include information stored on a memory in the switch 110. Such information can include configuration and settings data that describe or define the functionality or capabilities of switch 110. As shown in example switch template 113A, the information can include quality of service and security for the ports, indications of port initiator modes, indications of switch boot from target capabilities, input/output timeout settings, buffer credit tuning information, and the like.
[0017] The target devices 130 can be coupled to the switch 110 using various communication ports associated with or established on logical switches in the switching logic 111. In the example SAN 100 shown, the target devices 120 can be connected to the switch 110 through a principal port 120 and a node port (N_port) 121. A target device 130 can include a processor 131 and a memory 133. The processor 131 may be a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), or the like. According to an example implementation, the processor 131 is a hardware component, such as a circuit. The memory 133 can include a volatile or nonvolatile memory, such as dynamic random access memory (DRAM), electrically erasable programmable read-only memory (EEPROM),
magnetoresistive random access memory (MRAM), memristor, flash memory, floppy disk, a compact disc read only memory (CD-ROM), a digital video disc read only memory (DVD-ROM), or other optical or magnetic media, and the like, on which executable code may be stored.
[0018] The memory 133 can store executable code accessible to the processor 131 that include instructions that when executed by the processor 131 cause the processor to implement various functionality of the target device 130 described herein. For example, the memory can include principal port code 135 that the processor 131 can execute to initiate target device- based configuration of network communication using the switch 110 and/or SAN 100, according to implementations of the present disclosure. Attorney Docket No. 84171544 S
[0019] As described herein, example SAN 100 can include M target devices 130, where M is a natural number. Target devices 130 can include storage devices suitable for deployment in SAN 100, such as disk arrays, tape libraries, optical jukeboxes, and the like. As such, a target device 130 can include functionality and subcomponents for internal operations (e.g., internal data buses, data retrieval logic, mechanical media handlers, etc.) and communicating with the host devices 105 and switch 110. For example, the target devices 130 can include executable code, such as P_port code, stored on the memory 135 that the processor can execute to initiate communication with switch 110 using corresponding network interfaces (not shown) over connections 120 and 121. Connection 120 is a P_Port and connections 121 can function as backup or secondary redundant P_Ports. In case of any failover, target device 130 can communicate with switch through connection 121 as P_Port instead of connect! on120.
[0020] FIG. 2 illustrates additional details of the components and functionality of switch 110 according to an example implementation of the present disclosure. As shown, the switch 110 can include a processor 115 and a memory 117. Similar to the processor 131 in the target device, processor 115 may be a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), or the like. According to an example implementation, the processor 115 is a hardware component, such as a circuit. The memory 117 can include a volatile or non-volatile memory, such as dynamic random access memory (DRAM), electrically erasable
programmable read-only memory (EEPROM), magnetoresistive random access memory (MRAM), memristor, flash memory, floppy disk, a compact disc read only memory (CD-ROM), a digital video disc read only memory (DVD-ROM), or other optical or magnetic media, and the like, on which executable code may be stored.
[0021] In various example implementations, the processor 115 can access executable code stored in the memory 117 that cause the processor 115 to perform the operations and/or implement the functionality disclosed herein. The executable code may be stored in memory 117. Attorney Docket No. 84171544 6
[0022] [Executable code stored on the memory 117 can include
instructions executable by the processor 115 that cause the processor 115 to configure the switching logic 111 or communicate with the host devices 105 or target devices 130. In some implementations, the memory 117 can include data readable by the processor 115 that describes current or possible configurations or settings of switch 110. For example, the memory may include P_port codes 119 or switch template 113.
[0023] The P_port codes can include information that define the operations that processor 115 is to perform to control or configure the switching logic 111 in respond to specific control commands received from a host device 105 or target device 130. For example, the Pjport codes 119 can include command codes or identifiers associated with instructions that when executed by the processor cause the processor 115 to configure the logical switches/ports 112 of the switching logic 111 with specific port functionality. In one implementation, the logical switches/port 112 can be set to include multiple P_ports 120 and other port types (e.g., N-ports) 121 on the target device side and port types 107 on the host device side.
[0024] In various example implementations, a P_port 120 can include the functionality of a node port, or N_port, in a FC or other end-to-end protocol that includes an indication that it is a principal port. As used herein the terms P_port and principal port can be used interchangeably to refer to ports through which a target device 130 can exchange data with and query the switch 110 for switch configuration or capabilities. Accordingly, when the switching logic 111 configures specific logical switches/ports 112 as P _ports 120, those P _ports 120, and other ports 121 , can be coupled to
corresponding target devices 130. As such, target devices 130 can be coupled to the switch 110 by multiple connections. For example, a target device 130 can be coupled to the switch 110 by a P_ports 120 and/or multiple Njports 121. Any of the communication ports or connections can be established by the switching logic 111 can be point-to-point connections.
[0025] In implementations in which a target device 130 is coupled to the switch 110 by multiple P_ports 120, one of the P_ports 120 can be designated or operated as the primary P_port. A primary P_port can be used as the pathway for sending information about the switch 110 to the target device 130. Such implementations reduce or limit the need for each one of the connections to query the switch 110 for the switch template 113. As such, the primary P_port can be used to distribute configuration information for all connections between a target device 130 and a swith 110.
[0026] Use of a primary P_port in various implementations can save bandwidth on the other ports connecting the target device 130 to the switch 110. In the event that the primary P_port fails or otherwise becomes unavailable, another P_port 120 can bet designated as a backup primary P_port to provide redundancy and to avoid a single points of failure.
[0027] When target device 130 determines that it is coupled to the switch 110 through a P_port 120, then is can perform additional operations through that port to discover the configuration and capabilities of the switch 110. In one implementation, a target device 130 can send a get port type (GPT) command through the port through which it is coupled to the switch 110 (e.g., send the GPT command to a fabric name server) to determine if that particular port is a Pjport. If the response to the GPT command indicates that the particular port is a P_port, then the target device 130 can use P_port specific commands and queries to communicate with the switch 110 to perform configuration and subsequent communication operations.
[0028] In example implementations, the target device 130 can send a query to the switch 110 through a corresponding P_port 120 for information regarding the capabilities and configuration of the switch 110. In response to the query, the switch can respond by sending information from or a copy of switch template 113. The switch template 113 can include information about the switch port capabilities and functionality.
[0029] As illustrated in FIG. 1 , the switch template can include information depicted ip example switch template 113A, such as <Port$ QoS and
Security>, <Port Initiator mode>, <Switch boot from target>, <l/0 time out settings>, <Buffer credit tuning>, and other flags and indicators. In the example switch template 113A, <Ports QoS and Security> flag can indication whether the switch 110 allows for switch port QoS and security configuration can be pushed from a target device 130. The <Port initiator mode> indicator can indicate whether the switch 110 allows for switch port mode configuration changes pushed from a target device 130. The <Switch boot from target> flag can indicate whether the switch 110 allows for booting the switch with remote SAN image pushed through target devices. The <l/0 time out settings> flag can indicate an update input/output timeout for particular commands pushed through a target device 130. The <Buffer credit tuning> flag can indicate that the switch 110 can buffer updates for credits for long distances pushed through target.
[0030] As such, the switch template can include information thai can be used to configure the switch 1 10. in some examples, to configure one of the logical switches/ports 1 12, the processor 115 can execute instructions using information from a switch template to configure the logical switch 11 1 to include a logical switch/port 112 to have a GPT response that uses one reserved byte to indicate support for P__ports, The processor 115 can also execute instructions to configure the logical switch 1 1 1 to respond with the switch template 1 13.
[0031] With various logical switches/ports 1 12 configured as P__ports, the target devices 130 can determine whether if it is connected to a principal post by detecting the one reserved byte indicating support for P__ports on a connection through which it is connected to the switch 110. When a P_port is presence, the target device 130 can request and receive a switch template 113 from the switch 1 10 over the P„port.
[0032] FIGS, 3 and 4 depict sets of requests and responses defined in transport information units (CTJUs) that can be used in various
implementations of the present disclosure. FIG. 3 defines an example request CT_U 300. The request CT_U 300 includes a number of items 301 and corresponding sizes 303. As shown, example request CT_U 300 includes an 8 byte CT_U preamble, the 1 byte reserved flag, and a 3 byte port identifier. FIG, 4 defines an example GPT except request 400. The GPT accept request 400 includes items 401 and a corresponding sizes of 403. As shown, the GPT except request 400 can include an 8 byte CT_U preamble, a 2 byte reserved flag, a 1 byte port type, and a I byte P_port flag. [0033] FIG. 5 depicts an example definition of P_port flag field bits. As shown, the example definition of P_port flag field bits refers to the bit position in the GPT except request 400 about the existence of a P_port on a connection between the target device 130 and the switch 110. For example, bit positions at 7 through 1 I reserved, while bit position 0 can indicate that the corresponding port either supports principal port or does not support principal port (e.g. values of 1 or 0).
[0034] FIG.6 illustrates an example data flow 600 between the switch 110 and a target device 130 for target device-based configuration of network communication. At reference 601 , the target device 130 can generate and send a fabric linkup message over an available port to the switch 110.
[0036] Once the link is established, the target device 130 can generate and send a get port type (GPT) query to the switch 110 on over the corresponding port. The GPT query can be transmitted over the port to a fabric name server (not shown) to determine if the target device 130 is connected to the network fabric by a principal port, at reference 602.
[0036] At reference 603, the switch 110 can respond with a GPT response that includes an indication of P_port presence. If the GPT response includes an indication that the target device 130 is connected to the switch 110 by a P_ports (e.g. a P _port is present), then at reference 604 the target device 130 can generate and send a query for the P_port capabilities of the switch 110.
[0037] In response to the query for the P_port capabilities, the switch 110 can transmit a switch template at reference 605. The switch template can include information about the P_port capabilities through which the target device 130 is connected to the switch 110.
[0038] The target device 130 can then parse the switch template to determine the capabilities of the switch 110. The content of the switch template and/or the capabilities of switch 110 can vary by manufacturer and/or the model or type of switch. The target device can then issue subsequent requests based on the switch template. The request messages can also be based on requirements of the target device 130. As such, communication between the host devices 105 and the target devices 130 will Attorney Docket No. 84171544 10 comply with any requirements of the network fiber, the target device 130, or the host device 105. For examD ■ le. communication between the host devices
105 and the target devices 130 can comply with any quality of service, security, or custom requirements defined in the switch template. All information about the configuration and communication enforcement within network fabric can be completed using in-band communication, commands, and controls based on the switch template.
[0039] FIG. 7 depicts a flowchart of an example method 700 target device- based configuration of a network fabric or network communication. Method 700 can begin at box 710 in which logical switches 112 in a network fabric switch 110 are coupled to target devices 130. Multiple logical switches 112 having different FC type communication ports can be coupled to each target ucviue lou. rui CAaiiipic, uie laiyci ueviue ιου liaii ue lAJupieu ιυ uic swuuii
110 by an N_port, an Fjport, or other type of ports defined within a FC protocol. In other implementations, the target device 130 can be coupled to the switch 110 by ports that include a subset of Fibre Channel F_port functionality.
[0040] At box 720, a subset of the communication ports can be
established as P_ports over which the switch 110 can exchange information, such as switch templates, with the target device 130. A primary principal P_port can be used to transmit configuration and communication settings to the target device 130 that is can use for communicating on any or all of the other ports through which it is connected to the switch 110. As such, in various implementations described herein, instead of multiple target ports talking to multiple switch ports and exchanging information, a single P-port 120 can exchange information that can be used for communication conducted on any port connection between the switch 110 and target device 130. For example, if target device 130 requests name server information from the switch/fabric, it can request the information over the P_port 120 only, and all the other target ports on that switch 110 or on other switches 110 in the same fabric can make use of that information for communication. In some other examples, it is possible to use a P-port 120 for each switch, however, it is possible to use one P_port fir entire fabric. Attorney Docket No. 84171544 11
[0041] These and other variations, modifications, additions, and improvements may fall within the scope of the appended claims( s). As used in the description herein and throughout the claims that follow, "a", "an", and "the" includes plural references unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of "in" includes "in" and "on" unless the context clearly dictates otherwise. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the elements of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or elements are mutually exclusive.

Claims

Claims
What is claimed is:
1 A network switch comprising:
a processor;
a plurality of communication ports; and
a non-transitory computer readable medium coupled to the processor and comprising instructions that when executed by the processor cause the processor to:
receive a linkup request from a target storage device on a principal port in the plurality of communication ports;
establish a Sink with the target storage device comprising a connection on the principal port in response to the linkup signal;
receive a query requesting capabilities associated with the principal port; and
transmit a switch template to the target storage device through the principal port in response to the query.
2. The network switch of claim 1 wherein instructions further cause the processor to receive request messages on the principal port from the target storage device based on the switch template,
3. The network switch of claim 1 wherein instructions further cause the processor to receive request messages from the target storage device on communication ports in the plurality of communication ports other than the principal port based on the switch template.
4. The network switch of claim 3, wherein the request messages are
compliant with requirements of the target storage device.
5. The network switch of claim 1 wherein the principal port comprises a point- to-point connection between the target device and a host device.
8. The network switch of claim 5 the plurality of communication ports are in a Fibre Channel switch and the principal port provides a subset of Fibre Channel F_port functionality.
7. The network switch of claim 1 wherein the principal port comprises a Fibre Channel F__port and the Sink with the target storage device further comprises a Fibre Channei N_port on the target storage device,
8. A method comprising:
coupling a plurality of logical switches in a network switch to a plurality of corresponding target devices; and
establishing a plurality of communication ports on the plurality of logical switches as principal ports through which the network switch and the plurality of corresponding target devices can exchange electronic communication signals comprising information about capabilities of the network switch.
9. The method of claim 8, wherein at least some of the plurality of target devices are coupled to two or more principal ports and at ieast one other port on a corresponding logical switch, and for each of the plurality of target devices coupled to two or more of the of the principal ports, designating a one of the principal ports as the primary principal port through which all the information about the capabilities of the network switch is transmitted.
10. The method of claim 8, wherein the principal ports comprise
corresponding point-to-point port connections to the plurality of corresponding target devices.
11. The method of claim 8, further comprising:
transmitting a query for port capabilities from a target device in the plurality of corresponding target devices to the network switch over a corresponding principai port; and
transmitting a switch template comprising the information about the capabilities of the network switch from the network switch to the target device over the corresponding principal port that can be used to control communication over anv of the Dluralitv of communication Dorts connectina the network switch and the target device.
12. A storage area network comprising:
a computing device;
a fibre channel network switch comprising multiple logical switches and coupled to the computing device though the logical switches; and a target storage device coupled to fibre channel network switch to communicate with the computing device Through ihe iogicai switches, wherein the logical switches comprises a principal port to exchange information regarding the capabilities of the fibre channel network switch with the target storage device.
13. The storage area network of claim 12, wherein the information regarding template.
14. The storage area network of claim 13, wherein the target storage device comprises functionality to communicate with the computing device through the multiple logical switches based on the switch template received on through the principal port.
15. The storage area network of ciaim 13, wherein the target storage device comprises functionality to generate queries based on the switch template.
PCT/US2015/036591 2015-06-19 2015-06-19 Network communications WO2016204777A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/036591 WO2016204777A1 (en) 2015-06-19 2015-06-19 Network communications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/036591 WO2016204777A1 (en) 2015-06-19 2015-06-19 Network communications

Publications (1)

Publication Number Publication Date
WO2016204777A1 true WO2016204777A1 (en) 2016-12-22

Family

ID=57545717

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/036591 WO2016204777A1 (en) 2015-06-19 2015-06-19 Network communications

Country Status (1)

Country Link
WO (1) WO2016204777A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109510856A (en) * 2017-09-14 2019-03-22 慧与发展有限责任合伙企业 By the target device in storage area network to the mark of alternately Major Members port

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070140266A1 (en) * 2005-04-07 2007-06-21 International Business Machines Corporation Information handling system with virtualized i/o adapter ports
US20080316942A1 (en) * 2002-11-27 2008-12-25 Cisco Technology, Inc. Methods and devices for exchanging peer parameters between network devices
US20110255533A1 (en) * 2010-04-14 2011-10-20 Brocade Communications Systems, Inc. Remote F_Ports
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US20140344500A1 (en) * 2012-02-08 2014-11-20 David J. Harriman Pci express tunneling over a multi-protocol i/o interconnect

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080316942A1 (en) * 2002-11-27 2008-12-25 Cisco Technology, Inc. Methods and devices for exchanging peer parameters between network devices
US20070140266A1 (en) * 2005-04-07 2007-06-21 International Business Machines Corporation Information handling system with virtualized i/o adapter ports
US20110255533A1 (en) * 2010-04-14 2011-10-20 Brocade Communications Systems, Inc. Remote F_Ports
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US20140344500A1 (en) * 2012-02-08 2014-11-20 David J. Harriman Pci express tunneling over a multi-protocol i/o interconnect

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109510856A (en) * 2017-09-14 2019-03-22 慧与发展有限责任合伙企业 By the target device in storage area network to the mark of alternately Major Members port

Similar Documents

Publication Publication Date Title
JP5068055B2 (en) Data processing system, address assignment method and computer program (obtaining multiple port addresses from the network fabric with Fiber Channel switches)
US6981025B1 (en) Method and apparatus for ensuring scalable mastership during initialization of a system area network
KR101498413B1 (en) Fibre channel forwarder fabric login sequence
CN107820693B (en) Method, equipment and system for forwarding message in NVMe over Fabric
US9250989B2 (en) Expander to control multipaths in a storage network
WO2011121664A1 (en) Communication network control system and control method
US20150326467A1 (en) Bridging clouds
US9503322B2 (en) Automatic stack unit replacement system
KR101552761B1 (en) Methods and structure for serial attached scsi expanders that self-configure routing attributes of their ports
US20150055452A1 (en) Dedicated control path architecture for systems of devices
US9215087B2 (en) Directed route load/store packets for distributed switch initialization
US20180219755A1 (en) Determination of status of ports in storage area networks
US20120284435A1 (en) Zone group manager virtual phy
US9282036B2 (en) Directed route load/store packets for distributed switch initialization
US20160246746A1 (en) Sas configuration management
CN108574583A (en) A kind of device updating method and access device
CN114521322A (en) Dynamic discovery of service nodes in a network
US9143435B1 (en) Management of paths of switches of distributed computing systems
US8019217B2 (en) Storage system and optical module switching method for storage system
US7895300B1 (en) Systems and methods for testing device ports in a storage area network
US20190286585A1 (en) Adapter configuration for a storage area network
US10880168B2 (en) Switch configuration
WO2016204777A1 (en) Network communications
US10798159B2 (en) Methods for managing workload throughput in a storage system and devices thereof
US7818606B1 (en) Methods and apparatus for switch-initiated trespass decision making

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15895819

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15895819

Country of ref document: EP

Kind code of ref document: A1