Commit d1e67b8b authored by Jim Harris's avatar Jim Harris Committed by Tomasz Zawadzki
Browse files

bdev/nvme: add fabrics timeout to attach_controller RPC



Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: I42f6729475fd767087fb0a0c6e30d409672c3b99
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8597


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatar <dongx.yi@intel.com>
Reviewed-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
parent efd928e9
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -2866,7 +2866,7 @@ Array of names of newly created bdevs.
### Parameters

Name                       | Optional | Type        | Description
----------------------- | -------- | ----------- | -----------
-------------------------- | -------- | ----------- | -----------
name                       | Required | string      | Name of the NVMe controller, prefix for each bdev name
trtype                     | Required | string      | NVMe-oF target trtype: rdma or pcie
traddr                     | Required | string      | NVMe-oF target address: ip or BDF
@@ -2880,6 +2880,7 @@ prchk_reftag | Optional | bool | Enable checking of PI referen
prchk_guard                | Optional | bool        | Enable checking of PI guard for I/O processing
hdgst                      | Optional | bool        | Enable TCP header digest
ddgst                      | Optional | bool        | Enable TCP data digest
fabrics_connect_timeout_us | Optional | bool        | Timeout for fabrics connect (in microseconds)

### Example

+3 −1
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ struct rpc_bdev_nvme_attach_controller {
	char *hostsvcid;
	bool prchk_reftag;
	bool prchk_guard;
	uint64_t fabrics_connect_timeout_us;
	struct spdk_nvme_ctrlr_opts opts;
};

@@ -214,7 +215,8 @@ static const struct spdk_json_object_decoder rpc_bdev_nvme_attach_controller_dec
	{"prchk_reftag", offsetof(struct rpc_bdev_nvme_attach_controller, prchk_reftag), spdk_json_decode_bool, true},
	{"prchk_guard", offsetof(struct rpc_bdev_nvme_attach_controller, prchk_guard), spdk_json_decode_bool, true},
	{"hdgst", offsetof(struct rpc_bdev_nvme_attach_controller, opts.header_digest), spdk_json_decode_bool, true},
	{"ddgst", offsetof(struct rpc_bdev_nvme_attach_controller, opts.data_digest), spdk_json_decode_bool, true}
	{"ddgst", offsetof(struct rpc_bdev_nvme_attach_controller, opts.data_digest), spdk_json_decode_bool, true},
	{"fabrics_connect_timeout_us", offsetof(struct rpc_bdev_nvme_attach_controller, opts.fabrics_connect_timeout_us), spdk_json_decode_uint64, true},
};

#define NVME_MAX_BDEVS_PER_RPC 128
+3 −1
Original line number Diff line number Diff line
@@ -525,7 +525,8 @@ if __name__ == "__main__":
                                                         prchk_reftag=args.prchk_reftag,
                                                         prchk_guard=args.prchk_guard,
                                                         hdgst=args.hdgst,
                                                         ddgst=args.ddgst))
                                                         ddgst=args.ddgst,
                                                         fabrics_timeout=args.fabrics_timeout))

    p = subparsers.add_parser('bdev_nvme_attach_controller', aliases=['construct_nvme_bdev'],
                              help='Add bdevs with nvme backend')
@@ -554,6 +555,7 @@ if __name__ == "__main__":
                   help='Enable TCP header digest.', action='store_true')
    p.add_argument('-d', '--ddgst',
                   help='Enable TCP data digest.', action='store_true')
    p.add_argument('--fabrics-timeout', type=int, help='Fabrics connect timeout in microseconds')
    p.set_defaults(func=bdev_nvme_attach_controller)

    def bdev_nvme_get_controllers(args):
+5 −1
Original line number Diff line number Diff line
@@ -511,7 +511,7 @@ def bdev_nvme_set_hotplug(client, enable, period_us=None):
def bdev_nvme_attach_controller(client, name, trtype, traddr, adrfam=None, trsvcid=None,
                                priority=None, subnqn=None, hostnqn=None, hostaddr=None,
                                hostsvcid=None, prchk_reftag=None, prchk_guard=None,
                                hdgst=None, ddgst=None):
                                hdgst=None, ddgst=None, fabrics_timeout=None):
    """Construct block device for each NVMe namespace in the attached controller.

    Args:
@@ -529,6 +529,7 @@ def bdev_nvme_attach_controller(client, name, trtype, traddr, adrfam=None, trsvc
        prchk_guard: Enable checking of PI guard for I/O processing (optional)
        hdgst: Enable TCP header digest (optional)
        ddgst: Enable TCP data digest (optional)
        fabrics_timeout: Fabrics connect timeout in us (optional)

    Returns:
        Names of created block devices.
@@ -570,6 +571,9 @@ def bdev_nvme_attach_controller(client, name, trtype, traddr, adrfam=None, trsvc
    if ddgst:
        params['ddgst'] = ddgst

    if fabrics_timeout:
        params['fabrics_connect_timeout_us'] = fabrics_timeout

    return client.call('bdev_nvme_attach_controller', params)