📄 gridheaderinfo.hh
字号:
#ifndef GRIDHEADERINFO_HH#define GRIDHEADERINFO_HH#include <click/element.hh>#include "grid.hh"CLICK_DECLS/* * =c * GridHeaderInfo * =s Grid * Provide information about Grid header version, header sizes, and offsets * for the current router exectuable. * * =io * None * =d * * This element can be used by scripts to find out various sizes and * offsets of the Grid protocol headers. * * The point of this element is to provide information that can be * used to properly build Grid click configurations -- some of the * classifiers etc. require offset information. Probably this whole * approach is broken and I should just write a GridClassifier... but * then what's the point of a generic classifier? I am confused... * * The following handler documentation may not be exhaustive, or may * be out of date; use the ``handlers'' handler to see what is * actually available. * * =h grid_hdr_version read-only * Return the Grid header version as a hexadecimal number (no preceding 0x) * * =h grid_ether_proto read-only * Return the Grid ethernet protocol number as four hexadecimal digits (no preceding 0x) * * =h grid_proto_hello read-only * Each grid_proto_foo returns the the C<GRID_FOO> protocol number as two hexadecimal digits (no preceding 0x) * =h grid_proto_lr_hello read-only * =h grid_proto_nbr_encap read-only * =h grid_proto_loc_query read-only * =h grid_proto_loc_reply read-only * =h grid_proto_route_probe read-only * =h grid_proto_route_reply read-only * =h grid_proto_geocast read-only * =h grid_proto_link_probe read-only * * =h sizeof_grid_location read-only * Each sizeof_foo handler returns C<sizeof(foo)>. * =h sizeof_grid_hdr read-only * =h sizeof_grid_nbr_entry read-only * =h sizeof_grid_hello read-only * =h sizeof_grid_nbr_encap read-only * =h sizeof_grid_loc_query read-only * =h sizeof_grid_route_probe read-only * =h sizeof_grid_route_reply read-only * =h sizeof_grid_link_probe read-only * =h sizeof_grid_link_entry read-only * * =h sizeof_linkstat_link_probe read_only * =h sizeof_linkstat_link_entry read_only * * =h offsetof_grid_hdr_version read-only * Each offsetof_grid_hdr_foo handler returns C<offsetof(grid_hdr, foo)> * =h offsetof_grid_hdr_type read-only * =h offsetof_grid_hdr_ip read-only * =h offsetof_grid_hdr_tx_ip read-only * =h offsetof_grid_hdr_total_len read-only * * =h offsetof_grid_nbr_encap_dst_ip read-only * Returns C<offsetof(grid_nbr_encap, dst_ip)> * * =h offsetof_grid_loc_query_dst_ip read-only * Returns C<offsetof(grid_loc_query, dst_ip)> */class GridHeaderInfo : public Element { public: GridHeaderInfo(); ~GridHeaderInfo(); const char *class_name() const { return "GridHeaderInfo"; } int configure(Vector<String> &, ErrorHandler *); bool can_live_reconfigure() const { return true; } void add_handlers(); int read_args(const Vector<String> &conf, ErrorHandler *errh); struct info_t { char name[100]; unsigned int val; char base; // 'd' or 'h' for decimal or hexadecimal int width; // number of digits; -1 means no width specifier };};CLICK_ENDDECLS#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -