#include "vxWorks.h"
#include "netinet/in.h"
#include "netinet/ip.h"
#include "netinet/if_ether.h"
#include "netinet/udp.h"
#include "private/muxlibP.h"
void *MuxCookie;
BOOL RxHandler
(
void * pCookie, /* returned by muxBind() */
long type, /* from RFC1700, or user-defined */
M_BLK_ID pNetBuff, /* packet with link-level info */
LL_HDR_INFO * pLinkHdr, /* link-level header info structure */
void * pSpare /* defined on a per-protocol basis */
)
{
return(FALSE);
}
int auto_init ()
{
if (muxLibInit() != OK)
{
printf( "Failed to initialize mux subsystem\n");
return -1;
}
/* Check if the interface exists */
if(muxDevExists("fei", 3 )) /*3=序号,使用网卡的序号为3*/
{
printf("muxDevExists\n");
/* MUX_PROTO_SNARF MUX_PROTO_PROMISC MUX_PROTO_OUTPUT */
if ((MuxCookie = muxBind("fei", 3, RxHandler, NULL, NULL, NULL,MUX_PROTO_SNARF, "VLAN", NULL)) == NULL)
{
printf("\nERROR: %x,bind failure (ERRNO=%x) ",errnoGet());
}
}
}
int auto_Send(char *pMsgBuf, long FrameLen)
{
M_BLK_ID pMblk = 0;
END_OBJ * pEnd = 0;
if ((pEnd = ((MUX_ID) MuxCookie) -> pEnd) == NULL)
{
printf( "Failed to get valid cookie end reference\n");
return -1;
}
if ((pMblk = netTupleGet (pEnd-> pNetPool, 1500, M_DONTWAIT,MT_DATA,FALSE)) == NULL)
{
perror ( "pMblk");
muxUnbind(MuxCookie,MUX_PROTO_SNARF,RxHandler);
return(ERROR);
}
pMblk->mBlkHdr.mFlags |= M_PKTHDR;
pMblk->mBlkHdr.mLen = 0;
pMblk->mBlkHdr.mData = pMblk->pClBlk->clNode.pClBuf;
pMblk->mBlkHdr.mLen = FrameLen;
memcpy(pMblk->mBlkHdr.mData, pMsgBuf, FrameLen);
if (muxSend(MuxCookie, pMblk) != OK)
{
printf( "Failed to send ethernet frame\n");
netMblkClChainFree(pMblk);
return -1;
}
printf("Sent an Frame\n");
}
void autofei_muxsend(void)
{
int i_Count= 0 ;
int i;
unsigned char packet[512];
memset(packet,0,sizeof(packet));
/* TODO: Add your control notification handler code here */
packet[0]=0x01;
packet[1]=0x
packet[2]=0xcd;
packet[3]=0x04;
packet[4]=0x01;
packet[5]=0xff;
/* set mac source to 2:2:2:2:2:2 */
/* 00:10:16:00:89:d4 */
packet[6]=0x00;
packet[7]=0x10;
packet[8]=0x16;
packet[9]=0x00;
packet[10]=0x89;
packet[11]=0xd4;
packet[12]=0x88;
packet[13]=0xb8;
packet[14]=0x40;
packet[15]=0x00;
packet[16]=0x00;
packet[17]=0x
/* Fill the rest of the packet */
strcpy((char*)&packet[18],"noodle and rice,very very nice,yummy yummy,very very nice;a big fat mouse,come to the house,ai yao,ai yao,pepper in the eyes!http://shenlan51.blogspot.com/");
while(1)
{
printf("prepare muxsend auto %d \n",i_Count++);
auto_Send(packet,256);
taskDelay(100);
}
}
void muxsend_auto (void)
{
sysClkRateSet(100);
if(chdir("/ata
{
printf("directory is not existed\r\n");
}
InitNetCard();
ftpInit();
auto_init();
taskSpawn("sig_main", 50, 0, 1024*20, (FUNCPTR)autofei_muxsend, 0,0,0,0,0,0,0,0,0,0);
}
0 评论:
发表评论