📄 utilities.c
字号:
/******************************************************************************* * * THIS CODE IS NOT SUPPORTED CODE. IT IS PROVIDED ON AN AS-IS BASIS. * *******************************************************************************/ #include "vxWorks.h"#include "ifLib.h"#include "etherLib.h"#include "stdio.h"#include "net/if.h"#include "net/unixLib.h"#include "netBufLib.h"#include "end.h"#include "muxLib.h"#include "netShow.h"#include "stdio.h"IMPORT struct ifqueue ipintrq;IMPORT struct ifqueue arpintrq;IMPORT void netPoolShow (NET_POOL_ID pNetPool);/******************************************************************************** changeProtocolInputQMax - Change IP and ARP input queue maximum length* Default configuration sets these values to 50 packets each.* */void changeProtocolInputQMax ( int ipQNewSize, /* Default is 50 */ int arpQNewSize /* Default is 50 */ ) { int s; printf("IP input maximum queue length = %d\n", ipintrq.ifq_maxlen); printf("Arp input maximum queue length = %d\n", arpintrq.ifq_maxlen); s = splnet(); arpintrq.ifq_maxlen = arpQNewSize; ipintrq.ifq_maxlen = ipQNewSize; splx(s); printf("New IP input maximum queue length = %d\n", ipintrq.ifq_maxlen); printf("New Arp input maximum queue length = %d\n", arpintrq.ifq_maxlen); return; }void protocolQValuesShow (void) { printf("IP receive queue max size = %d\n", ipintrq.ifq_maxlen); printf("IP receive queue drops = %d\n\n", ipintrq.ifq_drops); printf("ARP receive queue max size = %d\n", arpintrq.ifq_maxlen); printf("ARP receive queue drops = %d\n", arpintrq.ifq_drops); return; }/******************************************************************************** ifQValuesShow - Show number of times packets were dropped because interface send* was full.** name* Expects the interface name plus the unit number: dc0, fei0 * */void ifQValuesShow ( char *name ) { struct ifnet *ifp; ifp = ifunit(name); if (ifp == NULL) { printf("Could not find %s interface\n", name); return; } printf("%s drops = %d queue length = %d max_len = %d \n", name, ifp->if_snd.ifq_drops, ifp->if_snd.ifq_len, ifp->if_snd.ifq_maxlen); return; }/******************************************************************************** changeIfSendQMax - Change interface send queue length.** name expects the interface name plus the unit number: dc0, fei0 ** len: New length. Default configuration sets this value to 50.**/void changeIfSendQMax ( char *name, int len ) { struct ifnet *ifp; int s; ifp = ifunit(name); if (ifp == NULL) { printf("Could not find %s interface\n", name); return; } printf("%s previous queue length was %d\n", name, ifp->if_snd.ifq_maxlen); s = splnet(); ifp->if_snd.ifq_maxlen = len; splx(s); printf("Queue length set at: %d\n", ifp->if_snd.ifq_maxlen); return; }/******************************************************************************** endMibShow - Show the contents of the MIB2 table for end drivers.** Output errors can be errors while transmitting or dropped packets due to* driver's out of buffers error condition. Input errors can be packets received* with errors or packets dropped due to driver's out of buffers error condition.* See endPoolShow below. * */void endMibShow ( char * devName, int unit ) { END_OBJ * pEnd; if ((pEnd = endFindByName (devName, unit)) == NULL) { printf ("Could not find device %s\n", devName); return; } printf("Mib table statistics for %s%d:\n", devName, unit); printf("Output errors = %lu ", pEnd->mib2Tbl.ifOutErrors); printf("Output Packets = %lu\n", pEnd->mib2Tbl.ifOutUcastPkts); printf("Input errors = %lu\n", pEnd->mib2Tbl.ifInErrors); printf("Unknown protocols = %lu\n", pEnd->mib2Tbl.ifInUnknownProtos); return; }/******************************************************************************** endPoolShow - Show the status of the private memory pool for end drivers.** The total number of clusters is usually equal to the sum of the number of transmit,* receive and loan buffer descriptors that a driver is initialized with.* See the External Interface section for the driver's library description in the* vxWorks Reference manual (i.e dec21x40End), the driver's header file, and configNet.h* for the default values.** If the number of free buffers is 0, the device will be unable to either transmit * (Mib 2 output errors will increase) or receive packets (The Mib table input errors* statistics will increase).** Why would the free pool drop to 0? Most common reason is task not reading a socket.* Drivers lend buffers to the stack which are not freed until the socket is read.**/void endPoolShow ( char * devName, /* The inteface name: "dc", "ln" ...*/ int unit /* the unit number: usually 0 */ ) { END_OBJ * pEnd; if ((pEnd = endFindByName (devName, unit)) != NULL) netPoolShow (pEnd->pNetPool); else printf ("Could not find device %s\n", devName); return; }/******************************************************************************** changeMtu - Change default interface MTU.* */void changeMtu ( char *ifName, int newSize ) { struct ifnet *ifp; int s; ifp = ifunit(ifName); if (ifp == NULL) { printf("Could not find %s interface\n", ifName); return; } printf("Previous MTU for %s was %d\n", ifName, ifp->if_mtu); s = splnet(); ifp->if_mtu = newSize; splx(s); printf("MTU is now set at: %d\n", ifp->if_mtu); return; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -