1/* 2 * Broadcom Ethernettype protocol definitions 3 * 4 * Copyright (C) 1999-2013, Broadcom Corporation 5 * 6 * Permission to use, copy, modify, and/or distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 13 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 15 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * $Id: bcmeth.h 382882 2013-02-04 23:24:31Z $ 19 */ 20 21/* 22 * Broadcom Ethernet protocol defines 23 */ 24 25#ifndef _BCMETH_H_ 26#define _BCMETH_H_ 27 28#ifndef _TYPEDEFS_H_ 29#include <typedefs.h> 30#endif 31 32/* This marks the start of a packed structure section. */ 33#include <packed_section_start.h> 34 35/* ETHER_TYPE_BRCM is defined in ethernet.h */ 36 37/* 38 * Following the 2byte BRCM ether_type is a 16bit BRCM subtype field 39 * in one of two formats: (only subtypes 32768-65535 are in use now) 40 * 41 * subtypes 0-32767: 42 * 8 bit subtype (0-127) 43 * 8 bit length in bytes (0-255) 44 * 45 * subtypes 32768-65535: 46 * 16 bit big-endian subtype 47 * 16 bit big-endian length in bytes (0-65535) 48 * 49 * length is the number of additional bytes beyond the 4 or 6 byte header 50 * 51 * Reserved values: 52 * 0 reserved 53 * 5-15 reserved for iLine protocol assignments 54 * 17-126 reserved, assignable 55 * 127 reserved 56 * 32768 reserved 57 * 32769-65534 reserved, assignable 58 * 65535 reserved 59 */ 60 61/* 62 * While adding the subtypes and their specific processing code make sure 63 * bcmeth_bcm_hdr_t is the first data structure in the user specific data structure definition 64 */ 65 66#define BCMILCP_SUBTYPE_RATE 1 67#define BCMILCP_SUBTYPE_LINK 2 68#define BCMILCP_SUBTYPE_CSA 3 69#define BCMILCP_SUBTYPE_LARQ 4 70#define BCMILCP_SUBTYPE_VENDOR 5 71#define BCMILCP_SUBTYPE_FLH 17 72 73#define BCMILCP_SUBTYPE_VENDOR_LONG 32769 74#define BCMILCP_SUBTYPE_CERT 32770 75#define BCMILCP_SUBTYPE_SES 32771 76 77 78#define BCMILCP_BCM_SUBTYPE_RESERVED 0 79#define BCMILCP_BCM_SUBTYPE_EVENT 1 80#define BCMILCP_BCM_SUBTYPE_SES 2 81/* 82 * The EAPOL type is not used anymore. Instead EAPOL messages are now embedded 83 * within BCMILCP_BCM_SUBTYPE_EVENT type messages 84 */ 85/* #define BCMILCP_BCM_SUBTYPE_EAPOL 3 */ 86#define BCMILCP_BCM_SUBTYPE_DPT 4 87 88#define BCMILCP_BCM_SUBTYPEHDR_MINLENGTH 8 89#define BCMILCP_BCM_SUBTYPEHDR_VERSION 0 90 91/* These fields are stored in network order */ 92typedef BWL_PRE_PACKED_STRUCT struct bcmeth_hdr 93{ 94 uint16 subtype; /* Vendor specific..32769 */ 95 uint16 length; 96 uint8 version; /* Version is 0 */ 97 uint8 oui[3]; /* Broadcom OUI */ 98 /* user specific Data */ 99 uint16 usr_subtype; 100} BWL_POST_PACKED_STRUCT bcmeth_hdr_t; 101 102 103/* This marks the end of a packed structure section. */ 104#include <packed_section_end.h> 105 106#endif /* _BCMETH_H_ */ 107