📄 lcpinterfaces.c
字号:
/* lcpInterfaces.c - LCP published interfaces *//* Copyright 1999 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01o,16sep02,rp fix for SPR 8206701n,28may02,rvr fixed build warnings (teamf1)01m,26feb02,jr Setting the pointer to NULL after freeing01l,04feb02,ak modified PPP_LINK_CONFIG_INTERFACE functions as part of memory reduction process01k,30jan02,jr modified PPP_SECURITY_CONFIG_INTERFACE functions as part of memory reduction process01j,17dec00,md removed lcpConfigurationRequestGetDupPkt()01i,01aug00,adb Merging with openstack view01h,11jul00,md added lcpConfigurationRequestGet() interface01g,03mar00,sj fixed preference logic in SecurityConfigProtocolGet and Set01f,25feb00,sj in ConfigFcsSizeSet allow only 0 16 or 32 bit FCS + fixed SecurityProtocolGet/Set to use localAlternateString01e,24feb00,sj MagicNumberSet interface should toggle between supported and NOT01d,23feb00,sj Pedandic ANSI C fixes01c,15feb00,sj lock state before accessing stackData in Set interfaces01b,04jan100,sj added lcpExtendedOptions and pppSecurityConfig01a,15oct99,sj created*/#include "private/ppp/pppLcpComponentP.h"#include "ppp/m2pppLinkGroup.h"#include "ppp/pppChecksum.h"/* TO DO - move these to pppLcpComponentP.h */IMPORT void send_lcp_protocol_reject(PFW_PLUGIN_OBJ_STATE *,M_BLK_ID rx_packet);IMPORT void removeAlternateValues (LCP_CONFIG_STRINGS * lcpOption, char * remoteOrLocal);/* END: TO DO */LOCAL USHORT lcpLocalMRUGet ( PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL USHORT lcpRemoteMRUGet ( PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpLocalToPeerACCMapGet ( PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpPeerToLocalACCMapGet ( PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpLocalToRemoteProtocolCompressionGet ( PFW_PLUGIN_OBJ_STATE * lcpState );LOCAL UINT32 lcpRemoteToLocalProtocolCompressionGet ( PFW_PLUGIN_OBJ_STATE * lcpState );LOCAL UINT32 pppLinkStatusPhysicalIndexGet(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 pppLinkStatusBadAddressesGet(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 pppLinkStatusBadControlsGet(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 pppLinkStatusPacketTooLongsGet(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 pppLinkStatusBadFCSsGet(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL ULONG pppLinkConfigInitialMRUGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL STATUS pppLinkConfigInitialMRUSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG value);LOCAL ULONG pppLinkConfigReceiveACCMapGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL STATUS pppLinkConfigReceiveACCMapSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG value);LOCAL ULONG pppLinkConfigTransmitACCMapGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL STATUS pppLinkConfigTransmitACCMapSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG value);LOCAL ULONG pppLinkConfigMagicNumberGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL STATUS pppLinkConfigMagicNumberSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG value);LOCAL ULONG pppLinkConfigFcsSizeGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL STATUS pppLinkConfigFcsSizeSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG value);LOCAL UINT32 lcpLocalToRemoteACCompressionGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpRemoteToLocalACCompressionGet (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpTransmitFcsSize(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpReceiveFcsSize(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL UINT32 lcpRemoteAuthenticationProtocolGet(PFW_PLUGIN_OBJ_STATE *lcpState);LOCAL UINT32 lcpLocalAuthenticationProtocolGet(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void pppLinkStatusBadAddressesIncrement(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void pppLinkStatusBadControlsIncrement(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void pppLinkStatusPacketTooLongsIncrement (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void pppLinkStatusBadFCSsIncrement(PFW_PLUGIN_OBJ_STATE * lcpState);/* LCP extended options */#if 0LOCAL BOOL pppLocalToPeerCompoundFrames (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL BOOL pppPeerToLocalCompoundFrames (PFW_PLUGIN_OBJ_STATE * lcpState);#endifLOCAL BYTE pppLocalToPeerMaxSelfDescribingPad (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL BYTE pppPeerToLocalMaxSelfDescribingPad (PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL BOOL pppLocalToPeerCallbackOperation (PFW_PLUGIN_OBJ_STATE * lcpState, BYTE * operation);LOCAL BOOL pppPeerToLocalCallbackOperation (PFW_PLUGIN_OBJ_STATE * lcpState, BYTE * operation, char *msg);LOCAL STATUS lcpConfigurationRequestGet (PFW_PLUGIN_OBJ_STATE * lcpState, M_BLK_ID *initialReceived, M_BLK_ID *lastSent, M_BLK_ID *lastReceived);LOCAL void lcpConfigurationRequestSend(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void lcpConfigurationAckSend(PFW_PLUGIN_OBJ_STATE * lcpState, M_BLK_ID requestPacket);LOCAL void lcpTerminationRequestSend(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void lcpTerminationAckSend(PFW_PLUGIN_OBJ_STATE * lcpState, M_BLK_ID terminationRequest);LOCAL void lcpEchoRequestSend(PFW_PLUGIN_OBJ_STATE * lcpState);LOCAL void lcpEchoReplySend(PFW_PLUGIN_OBJ_STATE * lcpState, M_BLK_ID echoPacket);LOCAL void lcpProtocolRejectSend(PFW_PLUGIN_OBJ_STATE * lcpState, M_BLK_ID badPacket);LOCAL STATUS pppSecurityConfigProtocolSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG preference, UINT8 * protocol, UINT8 protocolLen);LOCAL int pppSecurityConfigProtocolGet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG preference, UINT8 * protocol, UINT8 *protocolLen);#if 0LOCAL int pppSecurityConfigStatusGet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG preference, ULONG * configStatus);#endifLOCAL STATUS pppSecurityConfigStatusSet (PFW_PLUGIN_OBJ_STATE * lcpState, ULONG preference, UINT32 configStatus);/******************************************************************************** lcpInterfacesInit -*/void lcpInterfacesInit ( PPP_LCP_COMPONENT * lcpComponent ) { PPP_LINK_STATUS_ENTRY_INTERFACE * lcpLinkStatusEntry = NULL; PPP_LINK_CONFIG_ENTRY_INTERFACE * lcpLinkConfigEntry = NULL; LCP_NEGOTIATED_AUTH_PROTOCOL_INTERFACE * lcpNegotiatedAuthProtocols = NULL; PPP_LINK_STATUS_COUNTER_INCREMENT_INTERFACE * lcpLinkCounters = NULL; LCP_EXTENDED_OPTIONS_INTERFACE * lcpExtendedOptions = NULL; LCP_CONFIG_REQS_INTERFACE * lcpConfReqGet = NULL; LCP_PACKET_SEND_INTERFACE * lcpPacketSend = NULL; PPP_SECURITY_CONFIG_ENTRY_INTERFACE * pppSecurityConfig = NULL; lcpLinkStatusEntry = &lcpComponent->lcpLinkStatusEntry; lcpLinkConfigEntry = &lcpComponent->lcpLinkConfigEntry; lcpNegotiatedAuthProtocols = &lcpComponent->lcpNegotiatedAuthProtocols; lcpLinkCounters = &lcpComponent->lcpLinkCounters; lcpExtendedOptions = &lcpComponent->lcpExtendedOptions; lcpConfReqGet = &lcpComponent->lcpConfReqGet; lcpPacketSend = &lcpComponent->lcpPacketSend; pppSecurityConfig = &lcpComponent->pppSecurityConfigEntry; lcpLinkStatusEntry->pppLinkStatusPhysicalIndexGet = pppLinkStatusPhysicalIndexGet; lcpLinkStatusEntry->pppLinkStatusBadAddressesGet = pppLinkStatusBadAddressesGet; lcpLinkStatusEntry->pppLinkStatusBadControlsGet = pppLinkStatusBadControlsGet; lcpLinkStatusEntry->pppLinkStatusPacketTooLongsGet = pppLinkStatusPacketTooLongsGet; lcpLinkStatusEntry->pppLinkStatusBadFCSsGet = pppLinkStatusBadFCSsGet; lcpLinkStatusEntry->pppLinkStatusLocalMRUGet = lcpLocalMRUGet; lcpLinkStatusEntry->pppLinkStatusRemoteMRUGet = lcpRemoteMRUGet; lcpLinkStatusEntry->pppLinkStatusLocalToPeerACCMapGet = lcpLocalToPeerACCMapGet; lcpLinkStatusEntry->pppLinkStatusPeerToLocalACCMapGet = lcpPeerToLocalACCMapGet; lcpLinkStatusEntry->pppLinkStatusLocalToRemoteProtocolCompressionGet = lcpLocalToRemoteProtocolCompressionGet; lcpLinkStatusEntry->pppLinkStatusRemoteToLocalProtocolCompressionGet = lcpRemoteToLocalProtocolCompressionGet; lcpLinkStatusEntry->pppLinkStatusLocalToRemoteACCompressionGet = lcpLocalToRemoteACCompressionGet; lcpLinkStatusEntry->pppLinkStatusRemoteToLocalACCompressionGet = lcpRemoteToLocalACCompressionGet; lcpLinkStatusEntry->pppLinkStatusTransmitFcsSizeGet = lcpTransmitFcsSize; lcpLinkStatusEntry->pppLinkStatusReceiveFcsSizeGet = lcpReceiveFcsSize; /* LCP configuration */ lcpLinkConfigEntry->pppLinkConfigInitialMRUGet = pppLinkConfigInitialMRUGet; lcpLinkConfigEntry->pppLinkConfigInitialMRUSet = pppLinkConfigInitialMRUSet; lcpLinkConfigEntry->pppLinkConfigReceiveACCMapGet = pppLinkConfigReceiveACCMapGet; lcpLinkConfigEntry->pppLinkConfigReceiveACCMapSet = pppLinkConfigReceiveACCMapSet; lcpLinkConfigEntry->pppLinkConfigTransmitACCMapGet = pppLinkConfigTransmitACCMapGet; lcpLinkConfigEntry->pppLinkConfigTransmitACCMapSet = pppLinkConfigTransmitACCMapSet; lcpLinkConfigEntry->pppLinkConfigMagicNumberGet = pppLinkConfigMagicNumberGet; lcpLinkConfigEntry->pppLinkConfigMagicNumberSet = pppLinkConfigMagicNumberSet; lcpLinkConfigEntry->pppLinkConfigFcsSizeGet = pppLinkConfigFcsSizeGet; lcpLinkConfigEntry->pppLinkConfigFcsSizeSet = pppLinkConfigFcsSizeSet; /* auth protocols */ lcpNegotiatedAuthProtocols->pppLocalAuthenticationProtocolGet = lcpLocalAuthenticationProtocolGet; lcpNegotiatedAuthProtocols->pppRemoteAuthenticationProtocolGet = lcpRemoteAuthenticationProtocolGet; /* link counters */ lcpLinkCounters->pppLinkStatusBadAddressesIncrement = pppLinkStatusBadAddressesIncrement; lcpLinkCounters->pppLinkStatusBadControlsIncrement = pppLinkStatusBadControlsIncrement; lcpLinkCounters->pppLinkStatusPacketTooLongsIncrement = pppLinkStatusPacketTooLongsIncrement ; lcpLinkCounters->pppLinkStatusBadFCSsIncrement = pppLinkStatusBadFCSsIncrement; /* extended options */#if 0 lcpExtendedOptions->pppLocalToPeerCompoundFrames = pppLocalToPeerCompoundFrames; lcpExtendedOptions->pppPeerToLocalCompoundFrames = pppPeerToLocalCompoundFrames;#endif lcpExtendedOptions->pppLocalToPeerMaxSelfDescribingPad = pppLocalToPeerMaxSelfDescribingPad; lcpExtendedOptions->pppPeerToLocalMaxSelfDescribingPad = pppPeerToLocalMaxSelfDescribingPad; lcpExtendedOptions->pppLocalToPeerCallbackOperation = pppLocalToPeerCallbackOperation; lcpExtendedOptions->pppPeerToLocalCallbackOperation = pppPeerToLocalCallbackOperation; /* lcp config req get */ lcpConfReqGet->lcpConfigReqsGet = lcpConfigurationRequestGet; /* packet send */ lcpPacketSend->lcpConfigurationRequestSend = lcpConfigurationRequestSend; lcpPacketSend->lcpConfigurationAckSend = lcpConfigurationAckSend; lcpPacketSend->lcpTerminationRequestSend = lcpTerminationRequestSend; lcpPacketSend->lcpTerminationAckSend = lcpTerminationAckSend; lcpPacketSend->lcpEchoRequestSend = lcpEchoRequestSend; lcpPacketSend->lcpEchoReplySend = lcpEchoReplySend; lcpPacketSend->lcpProtocolRejectSend = lcpProtocolRejectSend; /* security config */ pppSecurityConfig->pppSecurityConfigProtocolGet = pppSecurityConfigProtocolGet; pppSecurityConfig->pppSecurityConfigProtocolSet = pppSecurityConfigProtocolSet;#if 0 pppSecurityConfig->pppSecurityConfigStatusGet = pppSecurityConfigStatusGet;#endif pppSecurityConfig->pppSecurityConfigStatusSet = pppSecurityConfigStatusSet; }/******************************************************************************** pppLinkStatusPhysicalIndexGet -*/LOCAL UINT32 pppLinkStatusPhysicalIndexGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusPhysicalIndex); }/******************************************************************************** pppLinkStatusBadAddressesGet -*/LOCAL UINT32 pppLinkStatusBadAddressesGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusBadAddresses); }/******************************************************************************** pppLinkStatusBadControlsGet -*/LOCAL UINT32 pppLinkStatusBadControlsGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusBadControls); }/******************************************************************************** pppLinkStatusPacketTooLongsGet -*/LOCAL UINT32 pppLinkStatusPacketTooLongsGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusPacketTooLongs); }/******************************************************************************** pppLinkStatusBadFCSsGet -*/LOCAL UINT32 pppLinkStatusBadFCSsGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusBadFCSs); }/******************************************************************************** lcpLocalMRUGet -*/LOCAL USHORT lcpLocalMRUGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusLocalMRU); }/******************************************************************************** lcpRemoteMRUGet -*/LOCAL USHORT lcpRemoteMRUGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusRemoteMRU); }/******************************************************************************** lcpLocalToPeerACCMapGet -*/LOCAL UINT32 lcpLocalToPeerACCMapGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusLocalToPeerACCMap); }/******************************************************************************** lcpPeerToLocalACCMapGet -*/LOCAL UINT32 lcpPeerToLocalACCMapGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusPeerToLocalACCMap); }/******************************************************************************** lcpLocalToRemoteProtocolCompressionGet -*/LOCAL UINT32 lcpLocalToRemoteProtocolCompressionGet ( PFW_PLUGIN_OBJ_STATE * lcpState ) { LCP_STACK_DATA * pStackData = (LCP_STACK_DATA *)lcpState->stackData; return(pStackData->lcp_mibs.pppLinkStatusLocalToRemoteProtocolCompression); }/******************************************************************************** lcpRemoteToLocalProtocolCompressionGet -
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -