18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright(c) 2007 Intel Corporation. All rights reserved. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Maintained at www.Open-FCoE.org 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef _FC_GS_H_ 98c2ecf20Sopenharmony_ci#define _FC_GS_H_ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/types.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci/* 148c2ecf20Sopenharmony_ci * Fibre Channel Services - Common Transport. 158c2ecf20Sopenharmony_ci * From T11.org FC-GS-2 Rev 5.3 November 1998. 168c2ecf20Sopenharmony_ci */ 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_cistruct fc_ct_hdr { 198c2ecf20Sopenharmony_ci __u8 ct_rev; /* revision */ 208c2ecf20Sopenharmony_ci __u8 ct_in_id[3]; /* N_Port ID of original requestor */ 218c2ecf20Sopenharmony_ci __u8 ct_fs_type; /* type of fibre channel service */ 228c2ecf20Sopenharmony_ci __u8 ct_fs_subtype; /* subtype */ 238c2ecf20Sopenharmony_ci __u8 ct_options; 248c2ecf20Sopenharmony_ci __u8 _ct_resvd1; 258c2ecf20Sopenharmony_ci __be16 ct_cmd; /* command / response code */ 268c2ecf20Sopenharmony_ci __be16 ct_mr_size; /* maximum / residual size */ 278c2ecf20Sopenharmony_ci __u8 _ct_resvd2; 288c2ecf20Sopenharmony_ci __u8 ct_reason; /* reject reason */ 298c2ecf20Sopenharmony_ci __u8 ct_explan; /* reason code explanation */ 308c2ecf20Sopenharmony_ci __u8 ct_vendor; /* vendor unique data */ 318c2ecf20Sopenharmony_ci}; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci#define FC_CT_HDR_LEN 16 /* expected sizeof (struct fc_ct_hdr) */ 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cienum fc_ct_rev { 368c2ecf20Sopenharmony_ci FC_CT_REV = 1 /* common transport revision */ 378c2ecf20Sopenharmony_ci}; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci/* 408c2ecf20Sopenharmony_ci * ct_fs_type values. 418c2ecf20Sopenharmony_ci */ 428c2ecf20Sopenharmony_cienum fc_ct_fs_type { 438c2ecf20Sopenharmony_ci FC_FST_ALIAS = 0xf8, /* alias service */ 448c2ecf20Sopenharmony_ci FC_FST_MGMT = 0xfa, /* management service */ 458c2ecf20Sopenharmony_ci FC_FST_TIME = 0xfb, /* time service */ 468c2ecf20Sopenharmony_ci FC_FST_DIR = 0xfc, /* directory service */ 478c2ecf20Sopenharmony_ci}; 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci/* 508c2ecf20Sopenharmony_ci * ct_cmd: Command / response codes 518c2ecf20Sopenharmony_ci */ 528c2ecf20Sopenharmony_cienum fc_ct_cmd { 538c2ecf20Sopenharmony_ci FC_FS_RJT = 0x8001, /* reject */ 548c2ecf20Sopenharmony_ci FC_FS_ACC = 0x8002, /* accept */ 558c2ecf20Sopenharmony_ci}; 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci/* 588c2ecf20Sopenharmony_ci * FS_RJT reason codes. 598c2ecf20Sopenharmony_ci */ 608c2ecf20Sopenharmony_cienum fc_ct_reason { 618c2ecf20Sopenharmony_ci FC_FS_RJT_CMD = 0x01, /* invalid command code */ 628c2ecf20Sopenharmony_ci FC_FS_RJT_VER = 0x02, /* invalid version level */ 638c2ecf20Sopenharmony_ci FC_FS_RJT_LOG = 0x03, /* logical error */ 648c2ecf20Sopenharmony_ci FC_FS_RJT_IUSIZ = 0x04, /* invalid IU size */ 658c2ecf20Sopenharmony_ci FC_FS_RJT_BSY = 0x05, /* logical busy */ 668c2ecf20Sopenharmony_ci FC_FS_RJT_PROTO = 0x07, /* protocol error */ 678c2ecf20Sopenharmony_ci FC_FS_RJT_UNABL = 0x09, /* unable to perform command request */ 688c2ecf20Sopenharmony_ci FC_FS_RJT_UNSUP = 0x0b, /* command not supported */ 698c2ecf20Sopenharmony_ci}; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci/* 728c2ecf20Sopenharmony_ci * FS_RJT reason code explanations. 738c2ecf20Sopenharmony_ci */ 748c2ecf20Sopenharmony_cienum fc_ct_explan { 758c2ecf20Sopenharmony_ci FC_FS_EXP_NONE = 0x00, /* no additional explanation */ 768c2ecf20Sopenharmony_ci FC_FS_EXP_PID = 0x01, /* port ID not registered */ 778c2ecf20Sopenharmony_ci FC_FS_EXP_PNAM = 0x02, /* port name not registered */ 788c2ecf20Sopenharmony_ci FC_FS_EXP_NNAM = 0x03, /* node name not registered */ 798c2ecf20Sopenharmony_ci FC_FS_EXP_COS = 0x04, /* class of service not registered */ 808c2ecf20Sopenharmony_ci FC_FS_EXP_FTNR = 0x07, /* FC-4 types not registered */ 818c2ecf20Sopenharmony_ci /* definitions not complete */ 828c2ecf20Sopenharmony_ci}; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci#endif /* _FC_GS_H_ */ 85