/*
 * Copyright Gavin Shan, IBM Corporation 2016.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

#ifndef NCSI_PKT_H
#define NCSI_PKT_H

/* from linux/net/ncsi/ncsi-pkt.h */
#define __be32 uint32_t
#define __be16 uint16_t

struct ncsi_pkt_hdr {
    unsigned char mc_id; /* Management controller ID */
    unsigned char revision; /* NCSI version - 0x01      */
    unsigned char reserved; /* Reserved                 */
    unsigned char id; /* Packet sequence number   */
    unsigned char type; /* Packet type              */
    unsigned char channel; /* Network controller ID    */
    __be16 length; /* Payload length           */
    __be32 reserved1[2]; /* Reserved                 */
};

struct ncsi_cmd_pkt_hdr {
    struct ncsi_pkt_hdr common; /* Common NCSI packet header */
};

struct ncsi_rsp_pkt_hdr {
    struct ncsi_pkt_hdr common; /* Common NCSI packet header */
    __be16 code; /* Response code             */
    __be16 reason; /* Response reason           */
};

struct ncsi_aen_pkt_hdr {
    struct ncsi_pkt_hdr common; /* Common NCSI packet header */
    unsigned char reserved2[3]; /* Reserved                  */
    unsigned char type; /* AEN packet type           */
};

/* NCSI common command packet */
struct ncsi_cmd_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header */
    __be32 checksum; /* Checksum       */
    unsigned char pad[26];
};

struct ncsi_rsp_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header */
    __be32 checksum; /* Checksum        */
    unsigned char pad[22];
};

/* Select Package */
struct ncsi_cmd_sp_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header */
    unsigned char reserved[3]; /* Reserved       */
    unsigned char hw_arbitration; /* HW arbitration */
    __be32 checksum; /* Checksum       */
    unsigned char pad[22];
};

/* Disable Channel */
struct ncsi_cmd_dc_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header  */
    unsigned char reserved[3]; /* Reserved        */
    unsigned char ald; /* Allow link down */
    __be32 checksum; /* Checksum        */
    unsigned char pad[22];
};

/* Reset Channel */
struct ncsi_cmd_rc_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header */
    __be32 reserved; /* Reserved       */
    __be32 checksum; /* Checksum       */
    unsigned char pad[22];
};

/* AEN Enable */
struct ncsi_cmd_ae_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header   */
    unsigned char reserved[3]; /* Reserved         */
    unsigned char mc_id; /* MC ID            */
    __be32 mode; /* AEN working mode */
    __be32 checksum; /* Checksum         */
    unsigned char pad[18];
};

/* Set Link */
struct ncsi_cmd_sl_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header    */
    __be32 mode; /* Link working mode */
    __be32 oem_mode; /* OEM link mode     */
    __be32 checksum; /* Checksum          */
    unsigned char pad[18];
};

/* Set VLAN Filter */
struct ncsi_cmd_svf_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header    */
    __be16 reserved; /* Reserved          */
    __be16 vlan; /* VLAN ID           */
    __be16 reserved1; /* Reserved          */
    unsigned char index; /* VLAN table index  */
    unsigned char enable; /* Enable or disable */
    __be32 checksum; /* Checksum          */
    unsigned char pad[14];
};

/* Enable VLAN */
struct ncsi_cmd_ev_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header   */
    unsigned char reserved[3]; /* Reserved         */
    unsigned char mode; /* VLAN filter mode */
    __be32 checksum; /* Checksum         */
    unsigned char pad[22];
};

/* Set MAC Address */
struct ncsi_cmd_sma_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header          */
    unsigned char mac[6]; /* MAC address             */
    unsigned char index; /* MAC table index         */
    unsigned char at_e; /* Addr type and operation */
    __be32 checksum; /* Checksum                */
    unsigned char pad[18];
};

/* Enable Broadcast Filter */
struct ncsi_cmd_ebf_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header */
    __be32 mode; /* Filter mode    */
    __be32 checksum; /* Checksum       */
    unsigned char pad[22];
};

/* Enable Global Multicast Filter */
struct ncsi_cmd_egmf_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header */
    __be32 mode; /* Global MC mode */
    __be32 checksum; /* Checksum       */
    unsigned char pad[22];
};

/* Set NCSI Flow Control */
struct ncsi_cmd_snfc_pkt {
    struct ncsi_cmd_pkt_hdr cmd; /* Command header    */
    unsigned char reserved[3]; /* Reserved          */
    unsigned char mode; /* Flow control mode */
    __be32 checksum; /* Checksum          */
    unsigned char pad[22];
};

/* Get Link Status */
struct ncsi_rsp_gls_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header   */
    __be32 status; /* Link status       */
    __be32 other; /* Other indications */
    __be32 oem_status; /* OEM link status   */
    __be32 checksum;
    unsigned char pad[10];
};

/* Get Version ID */
struct ncsi_rsp_gvi_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header */
    __be32 ncsi_version; /* NCSI version    */
    unsigned char reserved[3]; /* Reserved        */
    unsigned char alpha2; /* NCSI version    */
    unsigned char fw_name[12]; /* f/w name string */
    __be32 fw_version; /* f/w version     */
    __be16 pci_ids[4]; /* PCI IDs         */
    __be32 mf_id; /* Manufacture ID  */
    __be32 checksum;
};

/* Get Capabilities */
struct ncsi_rsp_gc_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header   */
    __be32 cap; /* Capabilities      */
    __be32 bc_cap; /* Broadcast cap     */
    __be32 mc_cap; /* Multicast cap     */
    __be32 buf_cap; /* Buffering cap     */
    __be32 aen_cap; /* AEN cap           */
    unsigned char vlan_cnt; /* VLAN filter count */
    unsigned char mixed_cnt; /* Mix filter count  */
    unsigned char mc_cnt; /* MC filter count   */
    unsigned char uc_cnt; /* UC filter count   */
    unsigned char reserved[2]; /* Reserved          */
    unsigned char vlan_mode; /* VLAN mode         */
    unsigned char channel_cnt; /* Channel count     */
    __be32 checksum; /* Checksum          */
};

/* Get Parameters */
struct ncsi_rsp_gp_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header       */
    unsigned char mac_cnt; /* Number of MAC addr    */
    unsigned char reserved[2]; /* Reserved              */
    unsigned char mac_enable; /* MAC addr enable flags */
    unsigned char vlan_cnt; /* VLAN tag count        */
    unsigned char reserved1; /* Reserved              */
    __be16 vlan_enable; /* VLAN tag enable flags */
    __be32 link_mode; /* Link setting          */
    __be32 bc_mode; /* BC filter mode        */
    __be32 valid_modes; /* Valid mode parameters */
    unsigned char vlan_mode; /* VLAN mode             */
    unsigned char fc_mode; /* Flow control mode     */
    unsigned char reserved2[2]; /* Reserved              */
    __be32 aen_mode; /* AEN mode              */
    unsigned char mac[6]; /* Supported MAC addr    */
    __be16 vlan; /* Supported VLAN tags   */
    __be32 checksum; /* Checksum              */
};

/* Get Controller Packet Statistics */
struct ncsi_rsp_gcps_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header            */
    __be32 cnt_hi; /* Counter cleared            */
    __be32 cnt_lo; /* Counter cleared            */
    __be32 rx_bytes; /* Rx bytes                   */
    __be32 tx_bytes; /* Tx bytes                   */
    __be32 rx_uc_pkts; /* Rx UC packets              */
    __be32 rx_mc_pkts; /* Rx MC packets              */
    __be32 rx_bc_pkts; /* Rx BC packets              */
    __be32 tx_uc_pkts; /* Tx UC packets              */
    __be32 tx_mc_pkts; /* Tx MC packets              */
    __be32 tx_bc_pkts; /* Tx BC packets              */
    __be32 fcs_err; /* FCS errors                 */
    __be32 align_err; /* Alignment errors           */
    __be32 false_carrier; /* False carrier detection    */
    __be32 runt_pkts; /* Rx runt packets            */
    __be32 jabber_pkts; /* Rx jabber packets          */
    __be32 rx_pause_xon; /* Rx pause XON frames        */
    __be32 rx_pause_xoff; /* Rx XOFF frames             */
    __be32 tx_pause_xon; /* Tx XON frames              */
    __be32 tx_pause_xoff; /* Tx XOFF frames             */
    __be32 tx_s_collision; /* Single collision frames    */
    __be32 tx_m_collision; /* Multiple collision frames  */
    __be32 l_collision; /* Late collision frames      */
    __be32 e_collision; /* Excessive collision frames */
    __be32 rx_ctl_frames; /* Rx control frames          */
    __be32 rx_64_frames; /* Rx 64-bytes frames         */
    __be32 rx_127_frames; /* Rx 65-127 bytes frames     */
    __be32 rx_255_frames; /* Rx 128-255 bytes frames    */
    __be32 rx_511_frames; /* Rx 256-511 bytes frames    */
    __be32 rx_1023_frames; /* Rx 512-1023 bytes frames   */
    __be32 rx_1522_frames; /* Rx 1024-1522 bytes frames  */
    __be32 rx_9022_frames; /* Rx 1523-9022 bytes frames  */
    __be32 tx_64_frames; /* Tx 64-bytes frames         */
    __be32 tx_127_frames; /* Tx 65-127 bytes frames     */
    __be32 tx_255_frames; /* Tx 128-255 bytes frames    */
    __be32 tx_511_frames; /* Tx 256-511 bytes frames    */
    __be32 tx_1023_frames; /* Tx 512-1023 bytes frames   */
    __be32 tx_1522_frames; /* Tx 1024-1522 bytes frames  */
    __be32 tx_9022_frames; /* Tx 1523-9022 bytes frames  */
    __be32 rx_valid_bytes; /* Rx valid bytes             */
    __be32 rx_runt_pkts; /* Rx error runt packets      */
    __be32 rx_jabber_pkts; /* Rx error jabber packets    */
    __be32 checksum; /* Checksum                   */
};

/* Get NCSI Statistics */
struct ncsi_rsp_gns_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header         */
    __be32 rx_cmds; /* Rx NCSI commands        */
    __be32 dropped_cmds; /* Dropped commands        */
    __be32 cmd_type_errs; /* Command type errors     */
    __be32 cmd_csum_errs; /* Command checksum errors */
    __be32 rx_pkts; /* Rx NCSI packets         */
    __be32 tx_pkts; /* Tx NCSI packets         */
    __be32 tx_aen_pkts; /* Tx AEN packets          */
    __be32 checksum; /* Checksum                */
};

/* Get NCSI Pass-through Statistics */
struct ncsi_rsp_gnpts_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header     */
    __be32 tx_pkts; /* Tx packets          */
    __be32 tx_dropped; /* Tx dropped packets  */
    __be32 tx_channel_err; /* Tx channel errors   */
    __be32 tx_us_err; /* Tx undersize errors */
    __be32 rx_pkts; /* Rx packets          */
    __be32 rx_dropped; /* Rx dropped packets  */
    __be32 rx_channel_err; /* Rx channel errors   */
    __be32 rx_us_err; /* Rx undersize errors */
    __be32 rx_os_err; /* Rx oversize errors  */
    __be32 checksum; /* Checksum            */
};

/* Get package status */
struct ncsi_rsp_gps_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header             */
    __be32 status; /* Hardware arbitration status */
    __be32 checksum;
};

/* Get package UUID */
struct ncsi_rsp_gpuuid_pkt {
    struct ncsi_rsp_pkt_hdr rsp; /* Response header */
    unsigned char uuid[16]; /* UUID            */
    __be32 checksum;
};

/* AEN: Link State Change */
struct ncsi_aen_lsc_pkt {
    struct ncsi_aen_pkt_hdr aen; /* AEN header      */
    __be32 status; /* Link status     */
    __be32 oem_status; /* OEM link status */
    __be32 checksum; /* Checksum        */
    unsigned char pad[14];
};

/* AEN: Configuration Required */
struct ncsi_aen_cr_pkt {
    struct ncsi_aen_pkt_hdr aen; /* AEN header */
    __be32 checksum; /* Checksum   */
    unsigned char pad[22];
};

/* AEN: Host Network Controller Driver Status Change */
struct ncsi_aen_hncdsc_pkt {
    struct ncsi_aen_pkt_hdr aen; /* AEN header */
    __be32 status; /* Status     */
    __be32 checksum; /* Checksum   */
    unsigned char pad[18];
};

/* NCSI packet revision */
#define NCSI_PKT_REVISION 0x01

/* NCSI packet commands */
#define NCSI_PKT_CMD_CIS 0x00 /* Clear Initial State              */
#define NCSI_PKT_CMD_SP 0x01 /* Select Package                   */
#define NCSI_PKT_CMD_DP 0x02 /* Deselect Package                 */
#define NCSI_PKT_CMD_EC 0x03 /* Enable Channel                   */
#define NCSI_PKT_CMD_DC 0x04 /* Disable Channel                  */
#define NCSI_PKT_CMD_RC 0x05 /* Reset Channel                    */
#define NCSI_PKT_CMD_ECNT 0x06 /* Enable Channel Network Tx        */
#define NCSI_PKT_CMD_DCNT 0x07 /* Disable Channel Network Tx       */
#define NCSI_PKT_CMD_AE 0x08 /* AEN Enable                       */
#define NCSI_PKT_CMD_SL 0x09 /* Set Link                         */
#define NCSI_PKT_CMD_GLS 0x0a /* Get Link                         */
#define NCSI_PKT_CMD_SVF 0x0b /* Set VLAN Filter                  */
#define NCSI_PKT_CMD_EV 0x0c /* Enable VLAN                      */
#define NCSI_PKT_CMD_DV 0x0d /* Disable VLAN                     */
#define NCSI_PKT_CMD_SMA 0x0e /* Set MAC address                  */
#define NCSI_PKT_CMD_EBF 0x10 /* Enable Broadcast Filter          */
#define NCSI_PKT_CMD_DBF 0x11 /* Disable Broadcast Filter         */
#define NCSI_PKT_CMD_EGMF 0x12 /* Enable Global Multicast Filter   */
#define NCSI_PKT_CMD_DGMF 0x13 /* Disable Global Multicast Filter  */
#define NCSI_PKT_CMD_SNFC 0x14 /* Set NCSI Flow Control            */
#define NCSI_PKT_CMD_GVI 0x15 /* Get Version ID                   */
#define NCSI_PKT_CMD_GC 0x16 /* Get Capabilities                 */
#define NCSI_PKT_CMD_GP 0x17 /* Get Parameters                   */
#define NCSI_PKT_CMD_GCPS 0x18 /* Get Controller Packet Statistics */
#define NCSI_PKT_CMD_GNS 0x19 /* Get NCSI Statistics              */
#define NCSI_PKT_CMD_GNPTS 0x1a /* Get NCSI Pass-throu Statistics   */
#define NCSI_PKT_CMD_GPS 0x1b /* Get package status               */
#define NCSI_PKT_CMD_OEM 0x50 /* OEM                              */
#define NCSI_PKT_CMD_PLDM 0x51 /* PLDM request over NCSI over RBT  */
#define NCSI_PKT_CMD_GPUUID 0x52 /* Get package UUID                 */

/* NCSI packet responses */
#define NCSI_PKT_RSP_CIS (NCSI_PKT_CMD_CIS + 0x80)
#define NCSI_PKT_RSP_SP (NCSI_PKT_CMD_SP + 0x80)
#define NCSI_PKT_RSP_DP (NCSI_PKT_CMD_DP + 0x80)
#define NCSI_PKT_RSP_EC (NCSI_PKT_CMD_EC + 0x80)
#define NCSI_PKT_RSP_DC (NCSI_PKT_CMD_DC + 0x80)
#define NCSI_PKT_RSP_RC (NCSI_PKT_CMD_RC + 0x80)
#define NCSI_PKT_RSP_ECNT (NCSI_PKT_CMD_ECNT + 0x80)
#define NCSI_PKT_RSP_DCNT (NCSI_PKT_CMD_DCNT + 0x80)
#define NCSI_PKT_RSP_AE (NCSI_PKT_CMD_AE + 0x80)
#define NCSI_PKT_RSP_SL (NCSI_PKT_CMD_SL + 0x80)
#define NCSI_PKT_RSP_GLS (NCSI_PKT_CMD_GLS + 0x80)
#define NCSI_PKT_RSP_SVF (NCSI_PKT_CMD_SVF + 0x80)
#define NCSI_PKT_RSP_EV (NCSI_PKT_CMD_EV + 0x80)
#define NCSI_PKT_RSP_DV (NCSI_PKT_CMD_DV + 0x80)
#define NCSI_PKT_RSP_SMA (NCSI_PKT_CMD_SMA + 0x80)
#define NCSI_PKT_RSP_EBF (NCSI_PKT_CMD_EBF + 0x80)
#define NCSI_PKT_RSP_DBF (NCSI_PKT_CMD_DBF + 0x80)
#define NCSI_PKT_RSP_EGMF (NCSI_PKT_CMD_EGMF + 0x80)
#define NCSI_PKT_RSP_DGMF (NCSI_PKT_CMD_DGMF + 0x80)
#define NCSI_PKT_RSP_SNFC (NCSI_PKT_CMD_SNFC + 0x80)
#define NCSI_PKT_RSP_GVI (NCSI_PKT_CMD_GVI + 0x80)
#define NCSI_PKT_RSP_GC (NCSI_PKT_CMD_GC + 0x80)
#define NCSI_PKT_RSP_GP (NCSI_PKT_CMD_GP + 0x80)
#define NCSI_PKT_RSP_GCPS (NCSI_PKT_CMD_GCPS + 0x80)
#define NCSI_PKT_RSP_GNS (NCSI_PKT_CMD_GNS + 0x80)
#define NCSI_PKT_RSP_GNPTS (NCSI_PKT_CMD_GNPTS + 0x80)
#define NCSI_PKT_RSP_GPS (NCSI_PKT_CMD_GPS + 0x80)
#define NCSI_PKT_RSP_OEM (NCSI_PKT_CMD_OEM + 0x80)
#define NCSI_PKT_RSP_PLDM (NCSI_PKT_CMD_PLDM + 0x80)
#define NCSI_PKT_RSP_GPUUID (NCSI_PKT_CMD_GPUUID + 0x80)

/* NCSI response code/reason */
#define NCSI_PKT_RSP_C_COMPLETED 0x0000 /* Command Completed        */
#define NCSI_PKT_RSP_C_FAILED 0x0001 /* Command Failed           */
#define NCSI_PKT_RSP_C_UNAVAILABLE 0x0002 /* Command Unavailable      */
#define NCSI_PKT_RSP_C_UNSUPPORTED 0x0003 /* Command Unsupported      */
#define NCSI_PKT_RSP_R_NO_ERROR 0x0000 /* No Error                 */
#define NCSI_PKT_RSP_R_INTERFACE 0x0001 /* Interface not ready      */
#define NCSI_PKT_RSP_R_PARAM 0x0002 /* Invalid Parameter        */
#define NCSI_PKT_RSP_R_CHANNEL 0x0003 /* Channel not Ready        */
#define NCSI_PKT_RSP_R_PACKAGE 0x0004 /* Package not Ready        */
#define NCSI_PKT_RSP_R_LENGTH 0x0005 /* Invalid payload length   */
#define NCSI_PKT_RSP_R_UNKNOWN 0x7fff /* Command type unsupported */

/* NCSI AEN packet type */
#define NCSI_PKT_AEN 0xFF /* AEN Packet               */
#define NCSI_PKT_AEN_LSC 0x00 /* Link status change       */
#define NCSI_PKT_AEN_CR 0x01 /* Configuration required   */
#define NCSI_PKT_AEN_HNCDSC 0x02 /* HNC driver status change */

#endif /* NCSI_PKT_H */
