📄 pppoe_stack.h
字号:
/**
* \addtogroup pppoe
* @{
*/
/**
* \file pppoe_stack.h
* \brief PPPoE stack Functions Defination
* \author Jane Gao <jgao@fameg.com>
*/
/*
******************************************************************************
* Copyright (c) 2006 FameG Shanghai, Inc. All rights reserved.
*
* This is unpublished proprietary source code of FameG Shanghai, Inc.
*
* The copyright notice above does not evidence any actual or intended
* publication of such source code.
******************************************************************************
*/
/*
******************************************************************************
* Project: T4 L4MCU FPGA verification
* Filename: pppoe_stack.h
* Date: 04/03/06
* Purpose: L4HStacke Engine PPPoE Stack Functions Defination
* Author: Jane Gao
******************************************************************************
*/
#ifndef _PPPOE_STACK_H
#define _PPPOE_STACK_H
/*===============================================*
* Include Files *
*===============================================*/
#include "user_config.h"
#include "kernel/system.h"
#include "pppoe/pppoe.h"
//#if INCLUDE_PPPOE_STACK
/*===============================================*
* Macro Defines *
*===============================================*/
#define PPPOE_WATCHDOG_ENABLE 1
#define PADI 0
#define PADO 1
#define PADR 2
#define PADS 3
#define LCP 4
#define PAP 5
//#define PAP_ACK 6
//#define PAP_NAK 7
#define CHAP 8
//#define CHAP_CHALLENGE 9
//#define CHAP_SUCCESS 10
//#define CHAP_FAILED 11
#define NCP 12
//#define IP 13
/*LCP NCP(IPCP) CODE Types*/
#define CONFIGURE_REQUEST 0x01
#define CONFIGURE_ACK 0x02
#define CONFIGURE_NAK 0x03
#define CONFIGURE_REJECT 0x04
#define TERMINATE_REQUEST 0x05
#define TERMINATE_ACK 0x06
#define CODE_REJECT 0x07
#define PROTOCOL_REJECT 0x08
#define ECHO_REQUEST 0x09
#define ECHO_REPLY 0x0A
#define DISCARD_REQUEST 0x0B
/*LCP Option Types*/
#define MRU 0x01 //Maximum_Receive_Unite
#define AUTH_PROTOCOL 0x03 //Authentication protocol
//#define QUALITY_PROTOCOL 0x04
#define MAGIC_NUM 0x05// magic number
//#define CALL_BACK 0x0D //
//#define STAC_ELEC 0x11//LZS
//#define M_E_D 0x13 //MultiLink Endpoint Discriminator
#define AUTH_OK 1
#define AUTH_FAIL 2
/*for ppp_header*/
#define LCP_PROTOCOL 0xC021
#define PAP_PROTOCOL 0xC023
//#define CHAP_PROTOCOL 0xC223
#define IPCP_PROTOCOL 0x8021
#define RP_MASK 0x3c
#if 0
typedef struct _tx_channel_data
{
UINT8 macctrl_lenl; /* CH_TDSC00 */
UINT8 ip_lb_lenh; /* CH_TDSC01 */
UINT8 pkttype_ctrl; /* CH_TDSC02 */
UINT8 protocol_ctrl; /* CH_TDSC03 */
UINT8 tcp_ctrl; /* CH_TDSC04 */
UINT8 pppoe_ctrl; /* CH_TDSC05 */
UINT8 tos_lnurg0; /* CH_TDSC06 */
UINT8 ttl_lnurg1; /* CH_TDSC07 */
UINT8 icmp_dip0; /* CH_TDSC08 */
UINT8 icmp_dip1; /* CH_TDSC09 */
UINT8 icmp_dip2; /* CH_TDSC10 */
UINT8 icmp_dip3; /* CH_TDSC11 */
UINT8 udp_dp0; /* CH_TDSC12 */
UINT8 udp_dp1; /* CH_TDSC13 */
UINT8 udp_ck0; /* CH_TDSC14 */
UINT8 udp_ck1; /* CH_TDSC15 */
UINT8 payload[1]; /* playload offset */
} tx_channel_data_T;
typedef struct _rx_channel_data
{
UINT8 error_type; /* CH_RDSC00 */
UINT8 link_type; /* CH_RDSC01 */
UINT8 payload_lenl; /* CH_RDSC02 */
UINT8 pkt_type_lenh; /* CH_RDSC03 */
UINT8 address_type; /* CH_RDSC04 */
UINT8 ip_tcp_flag; /* CH_RDSC05 */
UINT8 ip_tcp_opt; /* CH_RDSC06 */
UINT8 ip_tos; /* CH_RDSC07 */
UINT8 type_tcp_up0; /* CH_RDSC08 */
UINT8 code_tcp_up1; /* CH_RDSC09 */
UINT8 udp_rsp0; /* CH_RDSC10 */
UINT8 udp_rsp1; /* CH_RDSC11 */
UINT8 udp_rsip0; /* CH_RDSC12 */
UINT8 udp_rsip1; /* CH_RDSC13 */
UINT8 udp_rsip2; /* CH_RDSC14 */
UINT8 udp_rsip3; /* CH_RDSC15 */
UINT8 payload[1]; /* playload offset */
} rx_channel_data_T;
/** PPPoE protocol header */
typedef struct _pppoe_header
{
UINT8 ver_type; /**< High 4-bit: version; Low 4-bit: type */
UINT8 code_num; /**< Code field */
UINT16 session_id; /**< Session ID, network byte order, big-endian */
UINT16 length; /**< payload length, network byte order, big-endian */
} pppoe_header_T;
#endif
//extern UINT8 XDATA pppoe_restart_timer;
//extern UINT8 auth_ok;
//extern UINT32 desip;
//extern UINT8 pppoe_timer;
//extern UINT8 watchdog_timer;
//extern UINT8 pppoe_closed;
/*===============================================*
* Function Prototype declaration *
*===============================================*/
void pppoe_restart_init(void);
void pppoe_init(void);
UINT8 pppoe_build_link(void);
void pppoe_connect(UINT8 * peerID, UINT8 * peerPWD);
UINT8 pppoe_disconnect(void);
UINT8 pppoe_check_rebuild(void);
void pppoe_run(void);
void pppoe_int_handler(void);
#if PPPOE_WATCHDOG_ENABLE
void check_watchdog_timer(void);
void watchdog_reset(void);
#endif
//#endif /* INCLUDE_PPPOE_STACK */
#endif /*_PPPOE_STACK_H */
/** @} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -