⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pppstate.c

📁 这是全套的PPP协议的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
/* 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 + -