2 * Copyright Gavin Shan, IBM Corporation 2016.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
10 #ifndef __NCSI_PKT_H__
11 #define __NCSI_PKT_H__
14 unsigned char mc_id
; /* Management controller ID */
15 unsigned char revision
; /* NCSI version - 0x01 */
16 unsigned char reserved
; /* Reserved */
17 unsigned char id
; /* Packet sequence number */
18 unsigned char type
; /* Packet type */
19 unsigned char channel
; /* Network controller ID */
20 __be16 length
; /* Payload length */
21 __be32 reserved1
[2]; /* Reserved */
24 struct ncsi_cmd_pkt_hdr
{
25 struct ncsi_pkt_hdr common
; /* Common NCSI packet header */
28 /* NCSI common command packet */
30 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
31 __be32 checksum
; /* Checksum */
32 unsigned char pad
[26];
36 struct ncsi_cmd_sp_pkt
{
37 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
38 unsigned char reserved
[3]; /* Reserved */
39 unsigned char hw_arbitration
; /* HW arbitration */
40 __be32 checksum
; /* Checksum */
41 unsigned char pad
[22];
45 struct ncsi_cmd_dc_pkt
{
46 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
47 unsigned char reserved
[3]; /* Reserved */
48 unsigned char ald
; /* Allow link down */
49 __be32 checksum
; /* Checksum */
50 unsigned char pad
[22];
54 struct ncsi_cmd_rc_pkt
{
55 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
56 __be32 reserved
; /* Reserved */
57 __be32 checksum
; /* Checksum */
58 unsigned char pad
[22];
62 struct ncsi_cmd_ae_pkt
{
63 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
64 unsigned char reserved
[3]; /* Reserved */
65 unsigned char mc_id
; /* MC ID */
66 __be32 mode
; /* AEN working mode */
67 __be32 checksum
; /* Checksum */
68 unsigned char pad
[18];
72 struct ncsi_cmd_sl_pkt
{
73 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
74 __be32 mode
; /* Link working mode */
75 __be32 oem_mode
; /* OEM link mode */
76 __be32 checksum
; /* Checksum */
77 unsigned char pad
[18];
81 struct ncsi_cmd_svf_pkt
{
82 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
83 __be16 reserved
; /* Reserved */
84 __be16 vlan
; /* VLAN ID */
85 __be16 reserved1
; /* Reserved */
86 unsigned char index
; /* VLAN table index */
87 unsigned char enable
; /* Enable or disable */
88 __be32 checksum
; /* Checksum */
89 unsigned char pad
[14];
93 struct ncsi_cmd_ev_pkt
{
94 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
95 unsigned char reserved
[3]; /* Reserved */
96 unsigned char mode
; /* VLAN filter mode */
97 __be32 checksum
; /* Checksum */
98 unsigned char pad
[22];
101 /* Set MAC Address */
102 struct ncsi_cmd_sma_pkt
{
103 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
104 unsigned char mac
[6]; /* MAC address */
105 unsigned char index
; /* MAC table index */
106 unsigned char at_e
; /* Addr type and operation */
107 __be32 checksum
; /* Checksum */
108 unsigned char pad
[18];
111 /* Enable Broadcast Filter */
112 struct ncsi_cmd_ebf_pkt
{
113 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
114 __be32 mode
; /* Filter mode */
115 __be32 checksum
; /* Checksum */
116 unsigned char pad
[22];
119 /* Enable Global Multicast Filter */
120 struct ncsi_cmd_egmf_pkt
{
121 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
122 __be32 mode
; /* Global MC mode */
123 __be32 checksum
; /* Checksum */
124 unsigned char pad
[22];
127 /* Set NCSI Flow Control */
128 struct ncsi_cmd_snfc_pkt
{
129 struct ncsi_cmd_pkt_hdr cmd
; /* Command header */
130 unsigned char reserved
[3]; /* Reserved */
131 unsigned char mode
; /* Flow control mode */
132 __be32 checksum
; /* Checksum */
133 unsigned char pad
[22];
136 /* NCSI packet revision */
137 #define NCSI_PKT_REVISION 0x01
139 /* NCSI packet commands */
140 #define NCSI_PKT_CMD_CIS 0x00 /* Clear Initial State */
141 #define NCSI_PKT_CMD_SP 0x01 /* Select Package */
142 #define NCSI_PKT_CMD_DP 0x02 /* Deselect Package */
143 #define NCSI_PKT_CMD_EC 0x03 /* Enable Channel */
144 #define NCSI_PKT_CMD_DC 0x04 /* Disable Channel */
145 #define NCSI_PKT_CMD_RC 0x05 /* Reset Channel */
146 #define NCSI_PKT_CMD_ECNT 0x06 /* Enable Channel Network Tx */
147 #define NCSI_PKT_CMD_DCNT 0x07 /* Disable Channel Network Tx */
148 #define NCSI_PKT_CMD_AE 0x08 /* AEN Enable */
149 #define NCSI_PKT_CMD_SL 0x09 /* Set Link */
150 #define NCSI_PKT_CMD_GLS 0x0a /* Get Link */
151 #define NCSI_PKT_CMD_SVF 0x0b /* Set VLAN Filter */
152 #define NCSI_PKT_CMD_EV 0x0c /* Enable VLAN */
153 #define NCSI_PKT_CMD_DV 0x0d /* Disable VLAN */
154 #define NCSI_PKT_CMD_SMA 0x0e /* Set MAC address */
155 #define NCSI_PKT_CMD_EBF 0x10 /* Enable Broadcast Filter */
156 #define NCSI_PKT_CMD_DBF 0x11 /* Disable Broadcast Filter */
157 #define NCSI_PKT_CMD_EGMF 0x12 /* Enable Global Multicast Filter */
158 #define NCSI_PKT_CMD_DGMF 0x13 /* Disable Global Multicast Filter */
159 #define NCSI_PKT_CMD_SNFC 0x14 /* Set NCSI Flow Control */
160 #define NCSI_PKT_CMD_GVI 0x15 /* Get Version ID */
161 #define NCSI_PKT_CMD_GC 0x16 /* Get Capabilities */
162 #define NCSI_PKT_CMD_GP 0x17 /* Get Parameters */
163 #define NCSI_PKT_CMD_GCPS 0x18 /* Get Controller Packet Statistics */
164 #define NCSI_PKT_CMD_GNS 0x19 /* Get NCSI Statistics */
165 #define NCSI_PKT_CMD_GNPTS 0x1a /* Get NCSI Pass-throu Statistics */
166 #define NCSI_PKT_CMD_GPS 0x1b /* Get package status */
167 #define NCSI_PKT_CMD_OEM 0x50 /* OEM */
168 #define NCSI_PKT_CMD_PLDM 0x51 /* PLDM request over NCSI over RBT */
169 #define NCSI_PKT_CMD_GPUUID 0x52 /* Get package UUID */
171 #endif /* __NCSI_PKT_H__ */
This page took 0.044303 seconds and 6 git commands to generate.