Spdk/lib/iscsi/portal_grp.h
Jim Harris 488570ebd4 Replace most BSD 3-clause license text with SPDX identifier.
Many open source projects have moved to using SPDX identifiers
to specify license information, reducing the amount of
boilerplate code in every source file.  This patch replaces
the bulk of SPDK .c, .cpp and Makefiles with the BSD-3-Clause
identifier.

Almost all of these files share the exact same license text,
and this patch only modifies the files that contain the
most common license text.  There can be slight variations
because the third clause contains company names - most say
"Intel Corporation", but there are instances for Nvidia,
Samsung, Eideticom and even "the copyright holder".

Used a bash script to automate replacement of the license text
with SPDX identifier which is checked into scripts/spdx.sh.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Iaa88ab5e92ea471691dc298cfe41ebfb5d169780
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12904
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: <qun.wan@intel.com>
2022-06-09 07:35:12 +00:00

79 lines
2.8 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (C) 2008-2012 Daisuke Aoyama <aoyama@peach.ne.jp>.
* Copyright (c) Intel Corporation.
* All rights reserved.
*/
#ifndef SPDK_PORTAL_GRP_H
#define SPDK_PORTAL_GRP_H
#include "spdk/conf.h"
#include "spdk/cpuset.h"
#include "iscsi/iscsi.h"
struct spdk_json_write_ctx;
struct spdk_iscsi_portal {
struct spdk_iscsi_portal_grp *group;
char host[MAX_PORTAL_ADDR + 1];
char port[MAX_PORTAL_PORT + 1];
struct spdk_sock *sock;
struct spdk_poller *acceptor_poller;
TAILQ_ENTRY(spdk_iscsi_portal) per_pg_tailq;
TAILQ_ENTRY(spdk_iscsi_portal) g_tailq;
};
struct spdk_iscsi_portal_grp {
int ref;
int tag;
/* For login redirection, there are two types of portal groups, public and
* private portal groups. Public portal groups have their portals returned
* by a discovery session. Private portal groups do not have their portals
* returned by a discovery session. A public portal group may optionally
* specify a redirect portal for non-discovery logins. This redirect portal
* must be from a private portal group.
*/
bool is_private;
bool disable_chap;
bool require_chap;
bool mutual_chap;
int32_t chap_group;
TAILQ_ENTRY(spdk_iscsi_portal_grp) tailq;
TAILQ_HEAD(, spdk_iscsi_portal) head;
};
/* SPDK iSCSI Portal Group management API */
struct spdk_iscsi_portal *iscsi_portal_create(const char *host, const char *port);
void iscsi_portal_destroy(struct spdk_iscsi_portal *p);
struct spdk_iscsi_portal_grp *iscsi_portal_grp_create(int tag, bool is_private);
void iscsi_portal_grp_add_portal(struct spdk_iscsi_portal_grp *pg,
struct spdk_iscsi_portal *p);
struct spdk_iscsi_portal *iscsi_portal_grp_find_portal_by_addr(
struct spdk_iscsi_portal_grp *pg, const char *host, const char *port);
void iscsi_portal_grp_destroy(struct spdk_iscsi_portal_grp *pg);
void iscsi_portal_grp_release(struct spdk_iscsi_portal_grp *pg);
int iscsi_parse_portal_grps(void);
void iscsi_portal_grps_destroy(void);
int iscsi_portal_grp_register(struct spdk_iscsi_portal_grp *pg);
struct spdk_iscsi_portal_grp *iscsi_portal_grp_unregister(int tag);
struct spdk_iscsi_portal_grp *iscsi_portal_grp_find_by_tag(int tag);
int iscsi_portal_grp_open(struct spdk_iscsi_portal_grp *pg, bool pause);
void iscsi_portal_grp_resume(struct spdk_iscsi_portal_grp *pg);
int iscsi_portal_grp_set_chap_params(struct spdk_iscsi_portal_grp *pg,
bool disable_chap, bool require_chap,
bool mutual_chap, int32_t chap_group);
void iscsi_portal_grp_close_all(void);
void iscsi_portal_grps_info_json(struct spdk_json_write_ctx *w);
void iscsi_portal_grps_config_json(struct spdk_json_write_ctx *w);
int iscsi_parse_redirect_addr(struct sockaddr_storage *sa,
const char *host, const char *port);
#endif /* SPDK_PORTAL_GRP_H */