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

📄 llc.c

📁 增加了tftp功能的vivi代码
💻 C
字号:
#include "string.h"
#include "net.h"
/*全局变量的定义*/
u8 host_MAC_address[6]={0x00,0xe0,0x4c,0xe5,0x39,0xd1};
u8 board_MAC_address[6]= {0x60,0x20,0x00,0x00,0x20,0x00};


struct LLC_packet 
  {
   unsigned char destination_MAC[6];
   unsigned char source_MAC[6];
   unsigned char ethertype[2];
   unsigned char LLC_data[600];
  };
/*函数声明*/

/*加llc包函数,buf为入口数据的指针,length为数据的长度*/
s32 pack_LLC(u8 *buf ,s32 length)
{
  int i;
  struct LLC_packet *llc;
  unsigned char data[600];
  llc=(struct LLC_packet *)data;
  for(i=0;i<6;i++)
	  llc->destination_MAC[i]=host_MAC_address[i];
  for(i=0;i<6;i++)
	  llc->source_MAC[i]=board_MAC_address[i];
   llc->ethertype[0]=0x08;
   llc->ethertype[1]=0x00;
  for(i=0;i<length;i++)
	   llc->LLC_data[i]= *(buf+i);
  for(i=0;i<length+14;i++)
	  transmit_packet[i]=data[i];
    return (length+14);
}
/*解llc包的函数*/
s32 unpack_LLC(u8 * buf,s32 length)
{   int i;
    struct LLC_packet *llc;
    i=memcmp(buf,board_MAC_address,6);
    if(0!=i) return -2; 
    i=memcmp(buf+6,host_MAC_address,6);
    if(0!=i) return -2;
    llc=(struct LLC_packet *)buf;
    if(llc->ethertype[0]!=0x08||llc->ethertype[1]!=0x00)return -2;
    else return length-14;
    
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -