1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (C) 2008-2012 Daisuke Aoyama <aoyama@peach.ne.jp>. 3 * Copyright (C) 2016 Intel Corporation. 4 * All rights reserved. 5 */ 6 7 #ifndef SPDK_INIT_GRP_H 8 #define SPDK_INIT_GRP_H 9 10 #include "iscsi/iscsi.h" 11 #include "iscsi/conn.h" 12 13 struct spdk_iscsi_initiator_name { 14 char name[MAX_INITIATOR_NAME + 1]; 15 TAILQ_ENTRY(spdk_iscsi_initiator_name) tailq; 16 }; 17 18 struct spdk_iscsi_initiator_netmask { 19 char mask[MAX_INITIATOR_ADDR + 1]; 20 TAILQ_ENTRY(spdk_iscsi_initiator_netmask) tailq; 21 }; 22 23 struct spdk_iscsi_init_grp { 24 int ninitiators; 25 TAILQ_HEAD(, spdk_iscsi_initiator_name) initiator_head; 26 int nnetmasks; 27 TAILQ_HEAD(, spdk_iscsi_initiator_netmask) netmask_head; 28 int ref; 29 int tag; 30 TAILQ_ENTRY(spdk_iscsi_init_grp) tailq; 31 }; 32 33 /* SPDK iSCSI Initiator Group management API */ 34 int iscsi_init_grp_create_from_initiator_list(int tag, 35 int num_initiator_names, char **initiator_names, 36 int num_initiator_masks, char **initiator_masks); 37 int iscsi_init_grp_add_initiators_from_initiator_list(int tag, 38 int num_initiator_names, char **initiator_names, 39 int num_initiator_masks, char **initiator_masks); 40 int iscsi_init_grp_delete_initiators_from_initiator_list(int tag, 41 int num_initiator_names, char **initiator_names, 42 int num_initiator_masks, char **initiator_masks); 43 int iscsi_init_grp_register(struct spdk_iscsi_init_grp *ig); 44 struct spdk_iscsi_init_grp *iscsi_init_grp_unregister(int tag); 45 struct spdk_iscsi_init_grp *iscsi_init_grp_find_by_tag(int tag); 46 void iscsi_init_grp_destroy(struct spdk_iscsi_init_grp *ig); 47 int iscsi_parse_init_grps(void); 48 void iscsi_init_grps_destroy(void); 49 void iscsi_init_grps_info_json(struct spdk_json_write_ctx *w); 50 void iscsi_init_grps_config_json(struct spdk_json_write_ctx *w); 51 #endif /* SPDK_INIT_GRP_H */ 52