📄 mtrace.h
字号:
/* * Multicast traceroute related definitions * * mtrace.h,v 5.2 1998/12/04 04:48:21 fenner Exp *//* * NetBSD renamed the mtrace packet types. */#if !defined(IGMP_MTRACE_RESP) && defined(IGMP_MTRACE_REPLY)#define IGMP_MTRACE_RESP IGMP_MTRACE_REPLY#define IGMP_MTRACE IGMP_MTRACE_QUERY#endif/* * The packet format for a traceroute request. */struct tr_query { u_int32 tr_src; /* traceroute source */ u_int32 tr_dst; /* traceroute destination */ u_int32 tr_raddr; /* traceroute response address */ u_int32 tr_rttlqid; /* response ttl and qid */};#define TR_SETTTL(x, ttl) (x = (x & 0x00ffffff) | ((ttl) << 24))#define TR_GETTTL(x) (((x) >> 24) & 0xff)#define TR_SETQID(x, qid) (x = (x & 0xff000000) | ((qid) & 0x00ffffff))#define TR_GETQID(x) ((x) & 0x00ffffff)/* * Traceroute response format. A traceroute response has a tr_query at the * beginning, followed by one tr_resp for each hop taken. */struct tr_resp { u_int32 tr_qarr; /* query arrival time */ u_int32 tr_inaddr; /* incoming interface address */ u_int32 tr_outaddr; /* outgoing interface address */ u_int32 tr_rmtaddr; /* parent address in source tree */ u_int32 tr_vifin; /* input packet count on interface */ u_int32 tr_vifout; /* output packet count on interface */ u_int32 tr_pktcnt; /* total incoming packets for src-grp */ u_char tr_rproto; /* routing protocol deployed on router */ u_char tr_fttl; /* ttl required to forward on outvif */ u_char tr_smask; /* subnet mask for src addr */ u_char tr_rflags; /* forwarding error codes */};/* defs within mtrace */#define QLEN sizeof(struct tr_query)#define RLEN sizeof(struct tr_resp)/* fields for tr_rflags (forwarding error codes) */#define TR_NO_ERR 0#define TR_WRONG_IF 1#define TR_PRUNED 2#define TR_OPRUNED 3#define TR_SCOPED 4#define TR_NO_RTE 5#define TR_NO_FWD 7#define TR_HIT_RP 8#define TR_RPF_IF 9#define TR_NO_MULTI 10#define TR_NO_SPACE 0x81#define TR_OLD_ROUTER 0x82#define TR_ADMIN_PROHIB 0x83/* fields for tr_rproto (routing protocol) */#define PROTO_DVMRP 1#define PROTO_MOSPF 2#define PROTO_PIM 3#define PROTO_CBT 4#define PROTO_PIM_SPECIAL 5#define PROTO_PIM_STATIC 6#define PROTO_DVMRP_STATIC 7#define PROTO_PIM_BGP4PLUS 8#define PROTO_CBT_SPECIAL 9#define PROTO_CBT_STATIC 10#define PROTO_PIM_ASSERT 11#define VAL_TO_MASK(x, i) { \ x = htonl(~((1 << (32 - (i))) - 1)); \ };#if defined(__STDC__) || defined(__GNUC__)#define JAN_1970 2208988800UL /* 1970 - 1900 in seconds */#else#define JAN_1970 2208988800L /* 1970 - 1900 in seconds */#define const /**/#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -