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

📄 ether.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details   */#include <memory.h>#include <mac.h>#include <ip.h>#include "ether.h"typedef struct _HDR HDR;struct _HDR{    BYTE dst[6];    BYTE src[6];    WORD type;};static CHAIN *Encode(CHAIN *chain, MAC_HDR *hdr);static CHAIN *Decode(CHAIN *chain, MAC_HDR *hdr);MAC_TYPE etherMac ={    Encode,    Decode,    MAC_TYPE_ETHERNET_CSMACD};BOOLEAN EtherInit(void){    static BOOLEAN init = FALSE;        if (!init)    {        init = MacTypeRegister(&etherMac);    }    return init;}static CHAIN *Encode(CHAIN *chain, MAC_HDR *hdr){    HDR *h;    h=(HDR *)ChainPush(&chain, 14);    if (h==0)        return 0;    memcpy(h->src, hdr->src, 6);    memcpy(h->dst, hdr->dst, 6);    h->type = IpH2NWord(hdr->type);    return chain;}static CHAIN *Decode(CHAIN *chain, MAC_HDR *hdr){    HDR *h;    h=(HDR *)ChainPop(&chain, 14);    if (h==0)        return 0;    hdr->src = h->src;    hdr->dst = h->dst;    hdr->type = IpN2HWord(h->type);    return chain;}

⌨️ 快捷键说明

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