162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright(c) 2007 Intel Corporation. All rights reserved. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Maintained at www.Open-FCoE.org 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef _FC_GS_H_ 962306a36Sopenharmony_ci#define _FC_GS_H_ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <linux/types.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* 1462306a36Sopenharmony_ci * Fibre Channel Services - Common Transport. 1562306a36Sopenharmony_ci * From T11.org FC-GS-2 Rev 5.3 November 1998. 1662306a36Sopenharmony_ci */ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cistruct fc_ct_hdr { 1962306a36Sopenharmony_ci __u8 ct_rev; /* revision */ 2062306a36Sopenharmony_ci __u8 ct_in_id[3]; /* N_Port ID of original requestor */ 2162306a36Sopenharmony_ci __u8 ct_fs_type; /* type of fibre channel service */ 2262306a36Sopenharmony_ci __u8 ct_fs_subtype; /* subtype */ 2362306a36Sopenharmony_ci __u8 ct_options; 2462306a36Sopenharmony_ci __u8 _ct_resvd1; 2562306a36Sopenharmony_ci __be16 ct_cmd; /* command / response code */ 2662306a36Sopenharmony_ci __be16 ct_mr_size; /* maximum / residual size */ 2762306a36Sopenharmony_ci __u8 _ct_resvd2; 2862306a36Sopenharmony_ci __u8 ct_reason; /* reject reason */ 2962306a36Sopenharmony_ci __u8 ct_explan; /* reason code explanation */ 3062306a36Sopenharmony_ci __u8 ct_vendor; /* vendor unique data */ 3162306a36Sopenharmony_ci}; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#define FC_CT_HDR_LEN 16 /* expected sizeof (struct fc_ct_hdr) */ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cienum fc_ct_rev { 3662306a36Sopenharmony_ci FC_CT_REV = 1 /* common transport revision */ 3762306a36Sopenharmony_ci}; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci/* 4062306a36Sopenharmony_ci * ct_fs_type values. 4162306a36Sopenharmony_ci */ 4262306a36Sopenharmony_cienum fc_ct_fs_type { 4362306a36Sopenharmony_ci FC_FST_ALIAS = 0xf8, /* alias service */ 4462306a36Sopenharmony_ci FC_FST_MGMT = 0xfa, /* management service */ 4562306a36Sopenharmony_ci FC_FST_TIME = 0xfb, /* time service */ 4662306a36Sopenharmony_ci FC_FST_DIR = 0xfc, /* directory service */ 4762306a36Sopenharmony_ci}; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci/* 5062306a36Sopenharmony_ci * ct_cmd: Command / response codes 5162306a36Sopenharmony_ci */ 5262306a36Sopenharmony_cienum fc_ct_cmd { 5362306a36Sopenharmony_ci FC_FS_RJT = 0x8001, /* reject */ 5462306a36Sopenharmony_ci FC_FS_ACC = 0x8002, /* accept */ 5562306a36Sopenharmony_ci}; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci/* 5862306a36Sopenharmony_ci * FS_RJT reason codes. 5962306a36Sopenharmony_ci */ 6062306a36Sopenharmony_cienum fc_ct_reason { 6162306a36Sopenharmony_ci FC_FS_RJT_CMD = 0x01, /* invalid command code */ 6262306a36Sopenharmony_ci FC_FS_RJT_VER = 0x02, /* invalid version level */ 6362306a36Sopenharmony_ci FC_FS_RJT_LOG = 0x03, /* logical error */ 6462306a36Sopenharmony_ci FC_FS_RJT_IUSIZ = 0x04, /* invalid IU size */ 6562306a36Sopenharmony_ci FC_FS_RJT_BSY = 0x05, /* logical busy */ 6662306a36Sopenharmony_ci FC_FS_RJT_PROTO = 0x07, /* protocol error */ 6762306a36Sopenharmony_ci FC_FS_RJT_UNABL = 0x09, /* unable to perform command request */ 6862306a36Sopenharmony_ci FC_FS_RJT_UNSUP = 0x0b, /* command not supported */ 6962306a36Sopenharmony_ci}; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci/* 7262306a36Sopenharmony_ci * FS_RJT reason code explanations. 7362306a36Sopenharmony_ci */ 7462306a36Sopenharmony_cienum fc_ct_explan { 7562306a36Sopenharmony_ci FC_FS_EXP_NONE = 0x00, /* no additional explanation */ 7662306a36Sopenharmony_ci FC_FS_EXP_PID = 0x01, /* port ID not registered */ 7762306a36Sopenharmony_ci FC_FS_EXP_PNAM = 0x02, /* port name not registered */ 7862306a36Sopenharmony_ci FC_FS_EXP_NNAM = 0x03, /* node name not registered */ 7962306a36Sopenharmony_ci FC_FS_EXP_COS = 0x04, /* class of service not registered */ 8062306a36Sopenharmony_ci FC_FS_EXP_FTNR = 0x07, /* FC-4 types not registered */ 8162306a36Sopenharmony_ci /* definitions not complete */ 8262306a36Sopenharmony_ci}; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci#endif /* _FC_GS_H_ */ 85