📄 pppstate.c
字号:
/* pppstate.c - state machine table *//* Copyright 1999 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01f,28may02,rvr fixed build warnings 01e,29sep00,sj merging with TOR2_0-WINDNET_PPP-CUM_PATCH_201d,09aug00,adb support opening connections in passive mode01c,15mar00,sj initiate active termination of link on PPP_ECHO_RESPONSE_FAILURE in OPENED state01b,09nov99,sj in stopped state RCR- causes change to state 601a,04oct99,sj created*/#include "vxWorks.h"#include "stdio.h"#include "private/ppp/pppstate.h"/**$Log:: /Rtrware/devdrvrs/ppp/pppstat $ * * 9 3/12/99 11:27a Nishit * Bunch of small changes - mostly in MP * related code * * 8 11/17/98 8:43a Nishit * this_layer_finished calls the control * routine of the serial driver with * lsl_port_number as against PPP's * version of the port number (which is * independent of the LAN ports) * * 7 10/01/98 11:43a Alex * Updated the PPP source code to conform * to a single build. * * 6 4/30/98 3:03p Alex * Ppp v4.2.0 check in * * 1 4/24/98 12:10a Release Engineer * code cleanup, code style changes, * linted, system level test * PPP v4.2.0*//* locals and forwards */LOCAL void this_layer_start(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void this_layer_finished(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void this_layer_up(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void this_layer_down (PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void initialize_restart_counter(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void zero_restart_counter(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_configuration_request(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_configuration_ack(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_configuration_nak(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_configuration_reject(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_termination_request(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_termination_ack(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_code_reject(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_echo_reply(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);LOCAL void send_echo_request(PFW_PLUGIN_OBJ_STATE * pluginObjState, M_BLK_ID pMblk, PPP_STATE end_state);/* globals */PPP_STATE_MACHINE_TABLE state_machine_table[NUMBER_OF_PPP_STATES][NUMBER_OF_PPP_EVENTS] = { { /* ----------------------------------------------------------------- */ /* INITIAL state: 0 */ /* ----------------------------------------------------------------- */ /* UP */ {set_ppp_state,PPP_CLOSED_STATE}, /* DOWN */ {null_state,ILLEGAL_PPP_STATE}, /* OPEN */ {this_layer_start,PPP_STARTING_STATE}, /* CLOSE */ {set_ppp_state,PPP_INITIAL_STATE}, /* TIMEOUT_WITH_COUNTER_GREATER */{null_state,ILLEGAL_PPP_STATE}, /* TIMEOUT_WITH_COUNTER_EXPIRED */{null_state,ILLEGAL_PPP_STATE}, /* RX */ /* CONFIGURE_REQUEST_GOOD */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_REQUEST_BAD */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_REQUEST_BAD_OPTION */{null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_ACK */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_NAK */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_REJECT */ {null_state,ILLEGAL_PPP_STATE}, /* TERMINATE_REQUEST */ {null_state,ILLEGAL_PPP_STATE}, /* TERMINATE_ACK */ {null_state,ILLEGAL_PPP_STATE}, /* UNKNOWN_CODE */ {null_state,ILLEGAL_PPP_STATE}, /* CODE_REJECT_PERMITTED */ {null_state,ILLEGAL_PPP_STATE}, /* PROTOCOL_REJECT */ {null_state,ILLEGAL_PPP_STATE}, /* CODE_REJECT_CATASTROPHIC */ {null_state,ILLEGAL_PPP_STATE}, /* ECHO_REQUEST */ {null_state,ILLEGAL_PPP_STATE}, /* ECHO_REPLY */ {null_state,ILLEGAL_PPP_STATE}, /* DISCARD_REQUEST */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_TIMEOUT */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_FAILURE */ {null_state,ILLEGAL_PPP_STATE} }, { /* ----------------------------------------------------------------- */ /* STARTING state: 1 */ /* ----------------------------------------------------------------- */ /* UP */ {initialize_restart_counter, NO_CHANGE_TO_PPP_STATE, send_configuration_request, PPP_REQUEST_SENT_STATE}, /* DOWN */ {null_state,ILLEGAL_PPP_STATE}, /* OPEN */ {set_ppp_state,PPP_STARTING_STATE}, /* CLOSE */ {set_ppp_state,PPP_INITIAL_STATE}, /* TIMEOUT_WITH_COUNTER_GREATER */{null_state,ILLEGAL_PPP_STATE}, /* TIMEOUT_WITH_COUNTER_EXPIRED */{null_state,ILLEGAL_PPP_STATE}, /* RX */ /* CONFIGURE_REQUEST_GOOD */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_REQUEST_BAD */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_REQUEST_BAD_OPTION */{null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_ACK */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_NAK */ {null_state,ILLEGAL_PPP_STATE}, /* CONFIGURE_REJECT */ {null_state,ILLEGAL_PPP_STATE}, /* TERMINATE_REQUEST */ {null_state,ILLEGAL_PPP_STATE}, /* TERMINATE_ACK */ {null_state,ILLEGAL_PPP_STATE}, /* UNKNOWN_CODE */ {null_state,ILLEGAL_PPP_STATE}, /* CODE_REJECT_PERMITTED */ {null_state,ILLEGAL_PPP_STATE}, /* PROTOCOL_REJECT */ {null_state,ILLEGAL_PPP_STATE}, /* CODE_REJECT_CATASTROPHIC */ {null_state,ILLEGAL_PPP_STATE}, /* ECHO_REQUEST */ {null_state,ILLEGAL_PPP_STATE}, /* ECHO_REPLY */ {null_state,ILLEGAL_PPP_STATE}, /* DISCARD_REQUEST */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_TIMEOUT */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_FAILURE */ {null_state,ILLEGAL_PPP_STATE} }, { /* ----------------------------------------------------------------- */ /* CLOSED state: 2 */ /* ----------------------------------------------------------------- */ /* UP */ {null_state,ILLEGAL_PPP_STATE}, /* DOWN */ {set_ppp_state,PPP_INITIAL_STATE}, /* OPEN */ {initialize_restart_counter, NO_CHANGE_TO_PPP_STATE, send_configuration_request, PPP_REQUEST_SENT_STATE}, /* CLOSE */ {set_ppp_state,PPP_CLOSED_STATE}, /* TIMEOUT_WITH_COUNTER_GREATER */ {null_state,ILLEGAL_PPP_STATE}, /* TIMEOUT_WITH_COUNTER_EXPIRED */ {null_state,ILLEGAL_PPP_STATE}, /* RX */ /* CONFIGURE_REQUEST_GOOD */ {send_termination_ack,PPP_CLOSED_STATE}, /* CONFIGURE_REQUEST_BAD */ {send_termination_ack,PPP_CLOSED_STATE}, /* CONFIGURE_REQUEST_BAD_OPTION */ {send_termination_ack, PPP_CLOSED_STATE}, /* CONFIGURE_ACK */ {send_termination_ack,PPP_CLOSED_STATE}, /* CONFIGURE_NAK */ {send_termination_ack,PPP_CLOSED_STATE}, /* CONFIGURE_REJECT */ {send_termination_ack,PPP_CLOSED_STATE}, /* TERMINATE_REQUEST */ {send_termination_ack,PPP_CLOSED_STATE}, /* TERMINATE_ACK */ {set_ppp_state,PPP_CLOSED_STATE}, /* UNKNOWN_CODE */ {send_code_reject,PPP_CLOSED_STATE}, /* CODE_REJECT_PERMITTED */ {set_ppp_state,PPP_CLOSED_STATE}, /* PROTOCOL_REJECT */ {set_ppp_state,PPP_CLOSED_STATE}, /* CODE_REJECT_CATASTROPHIC */ {this_layer_finished,PPP_CLOSED_STATE}, /* ECHO_REQUEST */ {set_ppp_state,PPP_CLOSED_STATE}, /* ECHO_REPLY */ {set_ppp_state,PPP_CLOSED_STATE}, /* DISCARD_REQUEST */ {set_ppp_state,PPP_CLOSED_STATE}, /* PPP_ECHO_RESPONSE_TIMEOUT */{null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_FAILURE */{null_state,ILLEGAL_PPP_STATE} }, { /* ----------------------------------------------------------------- */ /* STOPPED state: 3 */ /* ----------------------------------------------------------------- */ /* UP */ {null_state,ILLEGAL_PPP_STATE}, /* DOWN */ {this_layer_start,PPP_STARTING_STATE}, /* OPEN */ {set_ppp_state,PPP_STOPPED_STATE}, /* CLOSE */ {set_ppp_state,PPP_CLOSED_STATE}, /* TIMEOUT_WITH_COUNTER_GREATER */{null_state,ILLEGAL_PPP_STATE}, /* TIMEOUT_WITH_COUNTER_EXPIRED */{null_state,ILLEGAL_PPP_STATE}, /* RX */ /* CONFIGURE_REQUEST_GOOD */ {initialize_restart_counter, NO_CHANGE_TO_PPP_STATE, send_configuration_request, NO_CHANGE_TO_PPP_STATE, send_configuration_ack, PPP_ACK_SENT_STATE}, /* CONFIGURE_REQUEST_BAD */ {initialize_restart_counter, NO_CHANGE_TO_PPP_STATE, send_configuration_request, NO_CHANGE_TO_PPP_STATE, send_configuration_nak, PPP_REQUEST_SENT_STATE}, #if 0 /* CONFIGURE_REQUEST_BAD_OPTION */{initialize_restart_counter, NO_CHANGE_TO_PPP_STATE, send_configuration_request, NO_CHANGE_TO_PPP_STATE, send_configuration_nak, PPP_ACK_SENT_STATE}, #endif /* CONFIGURE_REQUEST_BAD_OPTION */{send_configuration_reject, PPP_STOPPED_STATE}, /* CONFIGURE_ACK */ {send_termination_ack, PPP_STOPPED_STATE}, /* CONFIGURE_NAK */ {send_termination_ack, PPP_STOPPED_STATE}, /* CONFIGURE_REJECT */ {send_termination_ack, PPP_STOPPED_STATE}, /* TERMINATE_REQUEST */ {send_termination_ack, PPP_STOPPED_STATE}, /* TERMINATE_ACK */ {set_ppp_state,PPP_STOPPED_STATE}, /* UNKNOWN_CODE */ {send_code_reject,PPP_STOPPED_STATE}, /* CODE_REJECT_PERMITTED */ {set_ppp_state,PPP_STOPPED_STATE}, /* PROTOCOL_REJECT */ {set_ppp_state,PPP_STOPPED_STATE}, /* CODE_REJECT_CATASTROPHIC */ {this_layer_finished, PPP_STOPPED_STATE}, /* ECHO_REQUEST */ {set_ppp_state,PPP_STOPPED_STATE}, /* ECHO_REPLY */ {set_ppp_state,PPP_STOPPED_STATE}, /* DISCARD_REQUEST */ {set_ppp_state,PPP_STOPPED_STATE}, /* PPP_ECHO_RESPONSE_TIMEOUT */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_FAILURE */ {null_state,ILLEGAL_PPP_STATE} }, { /* ----------------------------------------------------------------- */ /* CLOSING state: 4 */ /* ----------------------------------------------------------------- */ /* UP */ {null_state,ILLEGAL_PPP_STATE}, /* DOWN */ {set_ppp_state,PPP_INITIAL_STATE}, /* OPEN */ {set_ppp_state,PPP_STOPPING_STATE}, /* CLOSE */ {set_ppp_state,PPP_CLOSING_STATE}, /* TIMEOUT_WITH_COUNTER_GREATER */{send_termination_request, PPP_CLOSING_STATE}, /* TIMEOUT_WITH_COUNTER_EXPIRED*/{this_layer_finished,PPP_CLOSED_STATE}, /* RX */ /* CONFIGURE_REQUEST_GOOD */ {set_ppp_state,PPP_CLOSING_STATE}, /* CONFIGURE_REQUEST_BAD */ {set_ppp_state,PPP_CLOSING_STATE}, /* CONFIGURE_REQUEST_BAD_OPTION */{set_ppp_state,PPP_CLOSING_STATE}, /* CONFIGURE_ACK */ {set_ppp_state,PPP_CLOSING_STATE}, /* CONFIGURE_NAK */ {set_ppp_state,PPP_CLOSING_STATE}, /* CONFIGURE_REJECT */ {set_ppp_state,PPP_CLOSING_STATE}, /* TERMINATE_REQUEST */ {send_termination_ack, PPP_CLOSING_STATE}, /* TERMINATE_ACK */ {this_layer_finished, PPP_CLOSED_STATE}, /* UNKNOWN_CODE */ {send_code_reject,PPP_CLOSING_STATE}, /* CODE_REJECT_PERMITTED */ {set_ppp_state,PPP_CLOSING_STATE}, /* PROTOCOL_REJECT */ {set_ppp_state,PPP_CLOSING_STATE}, /* CODE_REJECT_CATASTROPHIC */ {this_layer_finished, PPP_CLOSED_STATE}, /* ECHO_REQUEST */ {set_ppp_state,PPP_CLOSING_STATE}, /* ECHO_REPLY */ {set_ppp_state,PPP_CLOSING_STATE}, /* DISCARD_REQUEST */ {set_ppp_state,PPP_CLOSING_STATE}, /* PPP_ECHO_RESPONSE_TIMEOUT */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_FAILURE */ {null_state,ILLEGAL_PPP_STATE} }, { /* ----------------------------------------------------------------- */ /* STOPPING state: 5 */ /* ----------------------------------------------------------------- */ /* UP */ {null_state,ILLEGAL_PPP_STATE}, /* DOWN */ {set_ppp_state,PPP_STARTING_STATE}, /* OPEN */ {set_ppp_state,PPP_STOPPING_STATE}, /* CLOSE */ {set_ppp_state,PPP_CLOSING_STATE}, /* */ /* TIMEOUT_WITH_COUNTER_GREATER */{send_termination_request, PPP_STOPPING_STATE}, /* TIMEOUT_WITH_COUNTER_EXPIRED */{this_layer_finished, PPP_STOPPED_STATE}, /* RX */ /* CONFIGURE_REQUEST_GOOD */ {set_ppp_state,PPP_STOPPING_STATE}, /* CONFIGURE_REQUEST_BAD */ {set_ppp_state,PPP_STOPPING_STATE}, /* CONFIGURE_REQUEST_BAD_OPTION */{set_ppp_state,PPP_STOPPING_STATE}, /* CONFIGURE_ACK */ {set_ppp_state,PPP_STOPPING_STATE}, /* CONFIGURE_NAK */ {set_ppp_state,PPP_STOPPING_STATE}, /* CONFIGURE_REJECT */ {set_ppp_state,PPP_STOPPING_STATE}, /* TERMINATE_REQUEST */ {send_termination_ack, PPP_STOPPING_STATE}, /* TERMINATE_ACK */ {this_layer_finished, PPP_STOPPED_STATE}, /* UNKNOWN_CODE */ {send_code_reject,PPP_STOPPING_STATE}, /* CODE_REJECT_PERMITTED */ {set_ppp_state,PPP_STOPPING_STATE}, /* PROTOCOL_REJECT */ {set_ppp_state,PPP_STOPPING_STATE}, /* CODE_REJECT_CATASTROPHIC */ {this_layer_finished, PPP_STOPPED_STATE}, /* ECHO_REQUEST */ {set_ppp_state,PPP_STOPPING_STATE}, /* ECHO_REPLY */ {set_ppp_state,PPP_STOPPING_STATE}, /* DISCARD_REQUEST */ {set_ppp_state,PPP_STOPPING_STATE}, /* PPP_ECHO_RESPONSE_TIMEOUT */ {null_state,ILLEGAL_PPP_STATE}, /* PPP_ECHO_RESPONSE_FAILURE */ {null_state,ILLEGAL_PPP_STATE} }, { /* ----------------------------------------------------------------- */ /* REQUEST_SENT state: 6 */ /* ----------------------------------------------------------------- */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -