blob: 715c8287c716a011e0d484bb31b3e7927747f5d4 [file] [log] [blame]
/*
* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* @defgroup
* @{
*/
#ifndef HPPE_PPPOE_REG_H
#define HPPE_PPPOE_REG_H
/*[register] PPPOE_SESSION*/
#define PPPOE_SESSION
#define PPPOE_SESSION_ADDRESS 0xc20
#define PPPOE_SESSION_NUM 16
#define PPPOE_SESSION_INC 0x4
#define PPPOE_SESSION_TYPE REG_TYPE_RW
#define PPPOE_SESSION_DEFAULT 0x0
/*[field] SESSION_ID*/
#define PPPOE_SESSION_SESSION_ID
#define PPPOE_SESSION_SESSION_ID_OFFSET 0
#define PPPOE_SESSION_SESSION_ID_LEN 16
#define PPPOE_SESSION_SESSION_ID_DEFAULT 0x0
/*[field] PORT_BITMAP*/
#define PPPOE_SESSION_PORT_BITMAP
#define PPPOE_SESSION_PORT_BITMAP_OFFSET 16
#define PPPOE_SESSION_PORT_BITMAP_LEN 8
#define PPPOE_SESSION_PORT_BITMAP_DEFAULT 0x0
/*[field] L3_IF_INDEX*/
#define PPPOE_SESSION_L3_IF_INDEX
#define PPPOE_SESSION_L3_IF_INDEX_OFFSET 24
#define PPPOE_SESSION_L3_IF_INDEX_LEN 8
#define PPPOE_SESSION_L3_IF_INDEX_DEFAULT 0x0
struct pppoe_session {
a_uint32_t session_id:16;
a_uint32_t port_bitmap:8;
a_uint32_t l3_if_index:8;
};
union pppoe_session_u {
a_uint32_t val;
struct pppoe_session bf;
};
/*[register] PPPOE_SESSION_EXT*/
#define PPPOE_SESSION_EXT
#define PPPOE_SESSION_EXT_ADDRESS 0xc60
#define PPPOE_SESSION_EXT_NUM 16
#define PPPOE_SESSION_EXT_INC 0x4
#define PPPOE_SESSION_EXT_TYPE REG_TYPE_RW
#define PPPOE_SESSION_EXT_DEFAULT 0x0
/*[field] L3_IF_VALID*/
#define PPPOE_SESSION_EXT_L3_IF_VALID
#define PPPOE_SESSION_EXT_L3_IF_VALID_OFFSET 0
#define PPPOE_SESSION_EXT_L3_IF_VALID_LEN 1
#define PPPOE_SESSION_EXT_L3_IF_VALID_DEFAULT 0x0
/*[field] MC_VALID*/
#define PPPOE_SESSION_EXT_MC_VALID
#define PPPOE_SESSION_EXT_MC_VALID_OFFSET 1
#define PPPOE_SESSION_EXT_MC_VALID_LEN 1
#define PPPOE_SESSION_EXT_MC_VALID_DEFAULT 0x0
/*[field] UC_VALID*/
#define PPPOE_SESSION_EXT_UC_VALID
#define PPPOE_SESSION_EXT_UC_VALID_OFFSET 2
#define PPPOE_SESSION_EXT_UC_VALID_LEN 1
#define PPPOE_SESSION_EXT_UC_VALID_DEFAULT 0x0
/*[field] SMAC_VALID*/
#define PPPOE_SESSION_EXT_SMAC_VALID
#define PPPOE_SESSION_EXT_SMAC_VALID_OFFSET 3
#define PPPOE_SESSION_EXT_SMAC_VALID_LEN 1
#define PPPOE_SESSION_EXT_SMAC_VALID_DEFAULT 0x0
/*[field] SMAC*/
#define PPPOE_SESSION_EXT_SMAC
#define PPPOE_SESSION_EXT_SMAC_OFFSET 16
#define PPPOE_SESSION_EXT_SMAC_LEN 16
#define PPPOE_SESSION_EXT_SMAC_DEFAULT 0x0
struct pppoe_session_ext {
a_uint32_t l3_if_valid:1;
a_uint32_t mc_valid:1;
a_uint32_t uc_valid:1;
a_uint32_t smac_valid:1;
a_uint32_t _reserved0:12;
a_uint32_t smac:16;
};
union pppoe_session_ext_u {
a_uint32_t val;
struct pppoe_session_ext bf;
};
/*[register] PPPOE_SESSION_EXT1*/
#define PPPOE_SESSION_EXT1
#define PPPOE_SESSION_EXT1_ADDRESS 0xca0
#define PPPOE_SESSION_EXT1_NUM 16
#define PPPOE_SESSION_EXT1_INC 0x4
#define PPPOE_SESSION_EXT1_TYPE REG_TYPE_RW
#define PPPOE_SESSION_EXT1_DEFAULT 0x0
/*[field] SMAC*/
#define PPPOE_SESSION_EXT1_SMAC
#define PPPOE_SESSION_EXT1_SMAC_OFFSET 0
#define PPPOE_SESSION_EXT1_SMAC_LEN 32
#define PPPOE_SESSION_EXT1_SMAC_DEFAULT 0x0
struct pppoe_session_ext1 {
a_uint32_t smac:32;
};
union pppoe_session_ext1_u {
a_uint32_t val;
struct pppoe_session_ext1 bf;
};
#endif