16dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt/* 26dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * Broadcom Ethernettype protocol definitions 36dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * 438eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * Copyright (C) 1999-2013, Broadcom Corporation 538eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 66dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * Permission to use, copy, modify, and/or distribute this software for any 76dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * purpose with or without fee is hereby granted, provided that the above 86dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * copyright notice and this permission notice appear in all copies. 96dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * 106dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 116dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 126dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 136dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 156dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 166dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 176dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * 1838eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * $Id: bcmeth.h 382882 2013-02-04 23:24:31Z $ 196dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt */ 206dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 2138eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* 2238eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * Broadcom Ethernet protocol defines 2338eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt */ 246dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 256dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#ifndef _BCMETH_H_ 266dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define _BCMETH_H_ 276dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 286dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#ifndef _TYPEDEFS_H_ 296dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#include <typedefs.h> 306dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif 316dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 3238eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* This marks the start of a packed structure section. */ 336dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#include <packed_section_start.h> 346dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 3538eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* ETHER_TYPE_BRCM is defined in ethernet.h */ 366dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 3738eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* 3838eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * Following the 2byte BRCM ether_type is a 16bit BRCM subtype field 3938eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * in one of two formats: (only subtypes 32768-65535 are in use now) 4038eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 4138eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * subtypes 0-32767: 4238eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 8 bit subtype (0-127) 4338eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 8 bit length in bytes (0-255) 4438eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 4538eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * subtypes 32768-65535: 4638eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 16 bit big-endian subtype 4738eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 16 bit big-endian length in bytes (0-65535) 4838eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 4938eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * length is the number of additional bytes beyond the 4 or 6 byte header 5038eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 5138eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * Reserved values: 5238eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 0 reserved 5338eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 5-15 reserved for iLine protocol assignments 5438eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 17-126 reserved, assignable 5538eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 127 reserved 5638eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 32768 reserved 5738eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 32769-65534 reserved, assignable 5838eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * 65535 reserved 5938eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt */ 606dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 6138eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* 6238eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * While adding the subtypes and their specific processing code make sure 6338eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * bcmeth_bcm_hdr_t is the first data structure in the user specific data structure definition 6438eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt */ 656dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 666dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_RATE 1 676dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_LINK 2 686dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_CSA 3 696dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_LARQ 4 706dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_VENDOR 5 716dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_FLH 17 726dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 736dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_VENDOR_LONG 32769 746dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_CERT 32770 756dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_SUBTYPE_SES 32771 766dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 776dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 786dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_BCM_SUBTYPE_RESERVED 0 796dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_BCM_SUBTYPE_EVENT 1 806dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_BCM_SUBTYPE_SES 2 8138eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* 8238eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * The EAPOL type is not used anymore. Instead EAPOL messages are now embedded 8338eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt * within BCMILCP_BCM_SUBTYPE_EVENT type messages 8438eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt */ 8538eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* #define BCMILCP_BCM_SUBTYPE_EAPOL 3 */ 866dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_BCM_SUBTYPE_DPT 4 876dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 886dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_BCM_SUBTYPEHDR_MINLENGTH 8 896dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define BCMILCP_BCM_SUBTYPEHDR_VERSION 0 906dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 9138eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* These fields are stored in network order */ 926dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidttypedef BWL_PRE_PACKED_STRUCT struct bcmeth_hdr 936dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt{ 9438eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt uint16 subtype; /* Vendor specific..32769 */ 956dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt uint16 length; 9638eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt uint8 version; /* Version is 0 */ 9738eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt uint8 oui[3]; /* Broadcom OUI */ 9838eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt /* user specific Data */ 996dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt uint16 usr_subtype; 1006dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt} BWL_POST_PACKED_STRUCT bcmeth_hdr_t; 1016dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 1026dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 10338eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt/* This marks the end of a packed structure section. */ 1046dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#include <packed_section_end.h> 1056dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt 10638eaaf5a34502fe465cf8b6ac7a2dfcafa17ba41Dmitry Shmidt#endif /* _BCMETH_H_ */ 107