32#ifndef _NETGRAPH_NG_TAG_H_
33#define _NETGRAPH_NG_TAG_H_
36#define NG_TAG_NODE_TYPE "tag"
37#define NGM_TAG_COOKIE 1149771193
66#define NG_TAG_HOOKIN_SIZE(taglen) \
67 (sizeof(struct ng_tag_hookin) + (taglen))
69#define NG_TAG_HOOKOUT_SIZE(taglen) \
70 (sizeof(struct ng_tag_hookout) + (taglen))
73#define NG_TAG_HOOKIN_TYPE_INFO(tdtype) { \
74 { "thisHook", &ng_parse_hookbuf_type }, \
75 { "ifMatch", &ng_parse_hookbuf_type }, \
76 { "ifNotMatch", &ng_parse_hookbuf_type }, \
77 { "strip", &ng_parse_uint8_type }, \
78 { "tag_cookie", &ng_parse_uint32_type }, \
79 { "tag_id", &ng_parse_uint16_type }, \
80 { "tag_len", &ng_parse_uint16_type }, \
81 { "tag_data", (tdtype) }, \
85#define NG_TAG_HOOKOUT_TYPE_INFO(tdtype) { \
86 { "thisHook", &ng_parse_hookbuf_type }, \
87 { "tag_cookie", &ng_parse_uint32_type }, \
88 { "tag_id", &ng_parse_uint16_type }, \
89 { "tag_len", &ng_parse_uint16_type }, \
90 { "tag_data", (tdtype) }, \
97struct ng_tag_hookstat {
100 uint64_t recvMatchFrames;
101 uint64_t recvMatchOctets;
107#define NG_TAG_HOOKSTAT_TYPE_INFO { \
108 { "recvFrames", &ng_parse_uint64_type }, \
109 { "recvOctets", &ng_parse_uint64_type }, \
110 { "recvMatchFrames", &ng_parse_uint64_type }, \
111 { "recvMatchOctets", &ng_parse_uint64_type }, \
112 { "xmitFrames", &ng_parse_uint64_type }, \
113 { "xmitOctets", &ng_parse_uint64_type }, \
128 NGM_TAG_GETCLR_STATS,
char thisHook[NG_HOOKSIZ]
char ifNotMatch[NG_HOOKSIZ]
char thisHook[NG_HOOKSIZ]