NTP: Adding missing commands of ntpdc mode 7
authorUli Heilmeier <uh@heilmeier.eu>
Sat, 5 Jan 2019 07:48:00 +0000 (08:48 +0100)
committerAnders Broman <a.broman58@gmail.com>
Sat, 5 Jan 2019 20:56:58 +0000 (20:56 +0000)
Used documentation of bug report.

Bug: 15272
Change-Id: I83871b7458c36df711502bc6aa954a8c3c53604d
Reviewed-on: https://code.wireshark.org/review/31385
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
epan/dissectors/packet-ntp.c

index f5803a8d3fe2d3f6953af3c7e6c801ecd9a50cb3..5215de0adeed5cd69f7a809c8ab1970780936d7e 100644 (file)
@@ -418,60 +418,145 @@ static const value_string err_values_types[] = {
 #define NTPPRIV_AUTH_MASK 0x80
 #define NTPPRIV_SEQ_MASK 0x7f
 
+#define XNTPD_OLD 0x02
 #define XNTPD 0x03
 
 static const value_string priv_impl_types[] = {
        { 0,            "UNIV" },
-       { 2,            "XNTPD_OLD (pre-IPv6)" },
-       { 3,            "XNTPD" },
+       { XNTPD_OLD,    "XNTPD_OLD (pre-IPv6)" },
+       { XNTPD,        "XNTPD" },
        { 0,            NULL}
 };
 
-#define MON_GETLIST   20
-#define MON_GETLIST_1 42
+static const value_string priv_mode7_int_action[] = {
+       { 1,    "Interface exists" },
+       { 2,    "Interface created" },
+       { 3,    "Interface deleted" },
+       { 0,    NULL}
+};
+
+#define PRIV_RC_PEER_LIST       0
+#define PRIV_RC_PEER_LIST_SUM   1
+#define PRIV_RC_PEER_INFO       2
+#define PRIV_RC_PEER_STATS      3
+#define PRIV_RC_SYS_INFO        4
+#define PRIV_RC_SYS_STATS       5
+#define PRIV_RC_IO_STATS        6
+#define PRIV_RC_MEM_STATS       7
+#define PRIV_RC_LOOP_INFO       8
+#define PRIV_RC_TIMER_STATS     9
+#define PRIV_RC_CONFIG         10
+#define PRIV_RC_UNCONFIG       11
+#define PRIV_RC_SET_SYS_FLAG   12
+#define PRIV_RC_CLR_SYS_FLAG   13
+#define PRIV_RC_GET_RESTRICT   16
+#define PRIV_RC_RESADDFLAGS    17
+#define PRIV_RC_RESSUBFLAGS    18
+#define PRIV_RC_UNRESTRICT     19
+#define PRIV_RC_MON_GETLIST    20
+#define PRIV_RC_RESET_STATS    21
+#define PRIV_RC_RESET_PEER     22
+#define PRIV_RC_TRUSTKEY       26
+#define PRIV_RC_UNTRUSTKEY     27
+#define PRIV_RC_AUTHINFO       28
+#define PRIV_RC_TRAPS          29
+#define PRIV_RC_ADD_TRAP       30
+#define PRIV_RC_CLR_TRAP       31
+#define PRIV_RC_REQUEST_KEY    32
+#define PRIV_RC_CONTROL_KEY    33
+#define PRIV_RC_CTL_STATS      34
+#define PRIV_RC_GET_CLOCKINFO  36
+#define PRIV_RC_SET_CLKFUDGE   37
+#define PRIV_RC_GET_KERNEL     38
+#define PRIV_RC_GET_CLKBUGINFO 39
+#define PRIV_RC_MON_GETLIST_1  42
+#define PRIV_RC_IF_STATS       44
+#define PRIV_RC_IF_RELOAD      45
 
 static const value_string priv_rc_types[] = {
-       { 0,            "PEER_LIST" },
-       { 1,            "PEER_LIST_SUM" },
-       { 2,            "PEER_INFO" },
-       { 3,            "PEER_STATS" },
-       { 4,            "SYS_INFO" },
-       { 5,            "SYS_STATS" },
-       { 6,            "IO_STATS" },
-       { 7,            "MEM_STATS" },
-       { 8,            "LOOP_INFO" },
-       { 9,            "TIMER_STATS" },
-       { 10,           "CONFIG" },
-       { 11,           "UNCONFIG" },
-       { 12,           "SET_SYS_FLAG" },
-       { 13,           "CLR_SYS_FLAG" },
-       { 16,           "GET_RESTRICT" },
-       { 17,           "RESADDFLAGS" },
-       { 18,           "RESSUBFLAGS" },
-       { 19,           "UNRESTRICT" },
-       { 20,           "MON_GETLIST" },
-       { 21,           "RESET_STATS" },
-       { 22,           "RESET_PEER" },
-       { 23,           "REREAD_KEYS" },
-       { 26,           "TRUSTKEY" },
-       { 27,           "UNTRUSTKEY" },
-       { 28,           "AUTHINFO" },
-       { 29,           "TRAPS" },
-       { 30,           "ADD_TRAP" },
-       { 31,           "CLR_TRAP" },
-       { 32,           "REQUEST_KEY" },
-       { 33,           "CONTROL_KEY" },
-       { 34,           "GET_CTLSTATS" },
-       { 36,           "GET_CLOCKINFO" },
-       { 37,           "SET_CLKFUDGE" },
-       { 38,           "GET_KERNEL" },
-       { 39,           "GET_CLKBUGINFO" },
-       { 42,           "MON_GETLIST_1" },
-       { 43,           "HOSTNAME_ASSOCID" },
-       { 0,            NULL}
+       { PRIV_RC_PEER_LIST,            "PEER_LIST" },
+       { PRIV_RC_PEER_LIST_SUM,        "PEER_LIST_SUM" },
+       { PRIV_RC_PEER_INFO,            "PEER_INFO" },
+       { PRIV_RC_PEER_STATS,           "PEER_STATS" },
+       { PRIV_RC_SYS_INFO,             "SYS_INFO" },
+       { PRIV_RC_SYS_STATS,            "SYS_STATS" },
+       { PRIV_RC_IO_STATS,             "IO_STATS" },
+       { PRIV_RC_MEM_STATS,            "MEM_STATS" },
+       { PRIV_RC_LOOP_INFO,            "LOOP_INFO" },
+       { PRIV_RC_TIMER_STATS,          "TIMER_STATS" },
+       { PRIV_RC_CONFIG,               "CONFIG" },
+       { PRIV_RC_UNCONFIG,             "UNCONFIG" },
+       { PRIV_RC_SET_SYS_FLAG,         "SET_SYS_FLAG" },
+       { PRIV_RC_CLR_SYS_FLAG,         "CLR_SYS_FLAG" },
+       { 14,                           "MONITOR" },
+       { 15,                           "NOMONITOR" },
+       { PRIV_RC_GET_RESTRICT,         "GET_RESTRICT" },
+       { PRIV_RC_RESADDFLAGS,          "RESADDFLAGS" },
+       { PRIV_RC_RESSUBFLAGS,          "RESSUBFLAGS" },
+       { PRIV_RC_UNRESTRICT,           "UNRESTRICT" },
+       { PRIV_RC_MON_GETLIST,          "MON_GETLIST" },
+       { PRIV_RC_RESET_STATS,          "RESET_STATS" },
+       { PRIV_RC_RESET_PEER,           "RESET_PEER" },
+       { 23,                           "REREAD_KEYS" },
+       { 24,                           "DO_DIRTY_HACK" },
+       { 25,                           "DONT_DIRTY_HACK" },
+       { PRIV_RC_TRUSTKEY,             "TRUSTKEY" },
+       { PRIV_RC_UNTRUSTKEY,           "UNTRUSTKEY" },
+       { PRIV_RC_AUTHINFO,             "AUTHINFO" },
+       { PRIV_RC_TRAPS,                "TRAPS" },
+       { PRIV_RC_ADD_TRAP,             "ADD_TRAP" },
+       { PRIV_RC_CLR_TRAP,             "CLR_TRAP" },
+       { PRIV_RC_REQUEST_KEY,          "REQUEST_KEY" },
+       { PRIV_RC_CONTROL_KEY,          "CONTROL_KEY" },
+       { PRIV_RC_CTL_STATS,            "GET_CTLSTATS" },
+       { 35,                           "GET_LEAPINFO" },
+       { PRIV_RC_GET_CLOCKINFO,        "GET_CLOCKINFO" },
+       { PRIV_RC_SET_CLKFUDGE,         "SET_CLKFUDGE" },
+       { PRIV_RC_GET_KERNEL,           "GET_KERNEL" },
+       { PRIV_RC_GET_CLKBUGINFO,       "GET_CLKBUGINFO" },
+       { 41,                           "SET_PRECISION" },
+       { PRIV_RC_MON_GETLIST_1,        "MON_GETLIST_1" },
+       { 43,                           "HOSTNAME_ASSOCID" },
+       { PRIV_RC_IF_STATS,             "IF_STATS" },
+       { PRIV_RC_IF_RELOAD,            "IF_RELOAD" },
+       { 0,                            NULL}
 };
 static value_string_ext priv_rc_types_ext = VALUE_STRING_EXT_INIT(priv_rc_types);
 
+#define PRIV_INFO_FLAG_CONFIG        0x1
+#define PRIV_INFO_FLAG_SYSPEER       0x2
+#define PRIV_INFO_FLAG_BURST         0x4
+#define PRIV_INFO_FLAG_REFCLOCK      0x8
+#define PRIV_INFO_FLAG_PREFER        0x10
+#define PRIV_INFO_FLAG_AUTHENABLE    0x20
+#define PRIV_INFO_FLAG_SEL_CANDIDATE 0x40
+#define PRIV_INFO_FLAG_SHORTLIST     0x80
+#define PRIV_INFO_FLAG_IBURST        0x100
+
+#define PRIV_CONF_FLAG_AUTHENABLE    0x01
+#define PRIV_CONF_FLAG_PREFER        0x02
+#define PRIV_CONF_FLAG_BURST         0x04
+#define PRIV_CONF_FLAG_IBURST        0x08
+#define PRIV_CONF_FLAG_NOSELECT      0x10
+#define PRIV_CONF_FLAG_SKEY          0x20
+
+#define PRIV_SYS_FLAG_BCLIENT    0x01
+#define PRIV_SYS_FLAG_PPS        0x02
+#define PRIV_SYS_FLAG_NTP        0x04
+#define PRIV_SYS_FLAG_KERNEL     0x08
+#define PRIV_SYS_FLAG_MONITOR    0x10
+#define PRIV_SYS_FLAG_FILEGEN    0x20
+#define PRIV_SYS_FLAG_AUTH       0x40
+#define PRIV_SYS_FLAG_CAL        0x80
+
+#define PRIV_RESET_FLAG_ALLPEERS 0x01
+#define PRIV_RESET_FLAG_IO       0x02
+#define PRIV_RESET_FLAG_SYS      0x04
+#define PRIV_RESET_FLAG_MEM      0x08
+#define PRIV_RESET_FLAG_TIMER    0x10
+#define PRIV_RESET_FLAG_AUTH     0x20
+#define PRIV_RESET_FLAG_CTL      0x40
+
 static const range_string stratum_rvals[] = {
        { 0,    0, "unspecified or invalid" },
        { 1,    1, "primary reference" },
@@ -592,7 +677,7 @@ static int hf_ntppriv_reqcode = -1;
 static int hf_ntppriv_errcode = -1;
 static int hf_ntppriv_numitems = -1;
 static int hf_ntppriv_mbz = -1;
-static int hf_monlist_item = -1;
+static int hf_ntppriv_mode7_item = -1;
 static int hf_ntppriv_itemsize = -1;
 static int hf_ntppriv_avgint = -1;
 static int hf_ntppriv_lsint = -1;
@@ -609,6 +694,213 @@ static int hf_ntppriv_unused = -1;
 static int hf_ntppriv_addr6 = -1;
 static int hf_ntppriv_daddr6 = -1;
 static int hf_ntppriv_tstamp = -1;
+static int hf_ntppriv_mode7_addr = -1;
+static int hf_ntppriv_mode7_mask = -1;
+static int hf_ntppriv_mode7_bcast = -1;
+static int hf_ntppriv_mode7_port = -1;
+static int hf_ntppriv_mode7_hmode = -1;
+static int hf_ntppriv_mode7_peer_flags = -1;
+static int hf_ntppriv_mode7_v6_flag = -1;
+static int hf_ntppriv_mode7_unused = -1;
+static int hf_ntppriv_mode7_addr6 = -1;
+static int hf_ntppriv_mode7_mask6 = -1;
+static int hf_ntppriv_mode7_bcast6 = -1;
+static int hf_ntppriv_mode7_peer_flags_config = -1;
+static int hf_ntppriv_mode7_peer_flags_syspeer = -1;
+static int hf_ntppriv_mode7_peer_flags_burst = -1;
+static int hf_ntppriv_mode7_peer_flags_refclock = -1;
+static int hf_ntppriv_mode7_peer_flags_prefer = -1;
+static int hf_ntppriv_mode7_peer_flags_authenable = -1;
+static int hf_ntppriv_mode7_peer_flags_sel_candidate = -1;
+static int hf_ntppriv_mode7_peer_flags_shortlist = -1;
+static int hf_ntppriv_mode7_dstaddr = -1;
+static int hf_ntppriv_mode7_srcaddr = -1;
+static int hf_ntppriv_mode7_srcport = -1;
+static int hf_ntppriv_mode7_count = -1;
+static int hf_ntppriv_mode7_hpoll = -1;
+static int hf_ntppriv_mode7_reach = -1;
+static int hf_ntppriv_mode7_delay = -1;
+static int hf_ntppriv_mode7_offset = -1;
+static int hf_ntppriv_mode7_dispersion = -1;
+static int hf_ntppriv_mode7_dstaddr6 = -1;
+static int hf_ntppriv_mode7_srcaddr6 = -1;
+static int hf_ntppriv_mode7_leap = -1;
+static int hf_ntppriv_mode7_pmode = -1;
+static int hf_ntppriv_mode7_version = -1;
+static int hf_ntppriv_mode7_unreach = -1;
+static int hf_ntppriv_mode7_flash = -1;
+static int hf_ntppriv_mode7_ttl = -1;
+static int hf_ntppriv_mode7_flash2 = -1;
+static int hf_ntppriv_mode7_associd = -1;
+static int hf_ntppriv_mode7_pkeyid = -1;
+static int hf_ntppriv_mode7_timer = -1;
+static int hf_ntppriv_mode7_filtdelay = -1;
+static int hf_ntppriv_mode7_filtoffset = -1;
+static int hf_ntppriv_mode7_order = -1;
+static int hf_ntppriv_mode7_selectdis = -1;
+static int hf_ntppriv_mode7_estbdelay = -1;
+static int hf_ntppriv_mode7_bdelay = -1;
+static int hf_ntppriv_mode7_authdelay = -1;
+static int hf_ntppriv_mode7_stability = -1;
+static int hf_ntppriv_mode7_timeup = -1;
+static int hf_ntppriv_mode7_timereset = -1;
+static int hf_ntppriv_mode7_timereceived = -1;
+static int hf_ntppriv_mode7_timetosend = -1;
+static int hf_ntppriv_mode7_timereachable = -1;
+static int hf_ntppriv_mode7_sent = -1;
+static int hf_ntppriv_mode7_processed = -1;
+static int hf_ntppriv_mode7_badauth = -1;
+static int hf_ntppriv_mode7_bogusorg = -1;
+static int hf_ntppriv_mode7_oldpkt = -1;
+static int hf_ntppriv_mode7_seldisp = -1;
+static int hf_ntppriv_mode7_selbroken = -1;
+static int hf_ntppriv_mode7_candidate = -1;
+static int hf_ntppriv_mode7_minpoll = -1;
+static int hf_ntppriv_mode7_maxpoll = -1;
+static int hf_ntppriv_mode7_config_flags = -1;
+static int hf_ntppriv_mode7_config_flags_auth = -1;
+static int hf_ntppriv_mode7_config_flags_prefer = -1;
+static int hf_ntppriv_mode7_config_flags_burst = -1;
+static int hf_ntppriv_mode7_config_flags_iburst = -1;
+static int hf_ntppriv_mode7_config_flags_noselect = -1;
+static int hf_ntppriv_mode7_config_flags_skey = -1;
+static int hf_ntppriv_mode7_key_file = -1;
+static int hf_ntppriv_mode7_sys_flags = -1;
+static int hf_ntppriv_mode7_sys_flags8 = -1;
+static int hf_ntppriv_mode7_sys_flags_bclient = -1;
+static int hf_ntppriv_mode7_sys_flags_pps = -1;
+static int hf_ntppriv_mode7_sys_flags_ntp = -1;
+static int hf_ntppriv_mode7_sys_flags_kernel = -1;
+static int hf_ntppriv_mode7_sys_flags_monitor = -1;
+static int hf_ntppriv_mode7_sys_flags_filegen = -1;
+static int hf_ntppriv_mode7_sys_flags_auth = -1;
+static int hf_ntppriv_mode7_sys_flags_cal = -1;
+static int hf_ntppriv_mode7_reset_stats_flags = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_allpeers = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_io = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_sys = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_mem = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_timer = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_auth = -1;
+static int hf_ntppriv_mode7_reset_stats_flags_ctl = -1;
+static int hf_ntppriv_mode7_req = -1;
+static int hf_ntppriv_mode7_badpkts = -1;
+static int hf_ntppriv_mode7_responses = -1;
+static int hf_ntppriv_mode7_frags = -1;
+static int hf_ntppriv_mode7_errors = -1;
+static int hf_ntppriv_mode7_tooshort = -1;
+static int hf_ntppriv_mode7_inputresp = -1;
+static int hf_ntppriv_mode7_inputfrag = -1;
+static int hf_ntppriv_mode7_inputerr = -1;
+static int hf_ntppriv_mode7_badoffset = -1;
+static int hf_ntppriv_mode7_badversion = -1;
+static int hf_ntppriv_mode7_datatooshort = -1;
+static int hf_ntppriv_mode7_badop = -1;
+static int hf_ntppriv_mode7_asyncmsgs = -1;
+static int hf_ntppriv_mode7_type = -1;
+static int hf_ntppriv_mode7_clock_flags = -1;
+static int hf_ntppriv_mode7_lastevent = -1;
+static int hf_ntppriv_mode7_currentstatus = -1;
+static int hf_ntppriv_mode7_polls = -1;
+static int hf_ntppriv_mode7_noresponse = -1;
+static int hf_ntppriv_mode7_badformat = -1;
+static int hf_ntppriv_mode7_baddata = -1;
+static int hf_ntppriv_mode7_timestarted = -1;
+static int hf_ntppriv_mode7_fudgetime1 = -1;
+static int hf_ntppriv_mode7_fudgetime2 = -1;
+static int hf_ntppriv_mode7_fudgeval1 = -1;
+static int hf_ntppriv_mode7_fudgeval2 = -1;
+static int hf_ntppriv_mode7_kernel_offset = -1;
+static int hf_ntppriv_mode7_freq = -1;
+static int hf_ntppriv_mode7_maxerror = -1;
+static int hf_ntppriv_mode7_esterror = -1;
+static int hf_ntppriv_mode7_status = -1;
+static int hf_ntppriv_mode7_shift = -1;
+static int hf_ntppriv_mode7_constant = -1;
+static int hf_ntppriv_mode7_precision = -1;
+static int hf_ntppriv_mode7_tolerance = -1;
+static int hf_ntppriv_mode7_ppsfreq = -1;
+static int hf_ntppriv_mode7_jitter = -1;
+static int hf_ntppriv_mode7_stabil = -1;
+static int hf_ntppriv_mode7_jitcnt = -1;
+static int hf_ntppriv_mode7_calcnt = -1;
+static int hf_ntppriv_mode7_errcnt = -1;
+static int hf_ntppriv_mode7_stbcnt = -1;
+static int hf_ntppriv_mode7_key = -1;
+static int hf_ntppriv_mode7_numkeys = -1;
+static int hf_ntppriv_mode7_numfreekeys = -1;
+static int hf_ntppriv_mode7_keylookups = -1;
+static int hf_ntppriv_mode7_keynotfound = -1;
+static int hf_ntppriv_mode7_encryptions = -1;
+static int hf_ntppriv_mode7_decryptions = -1;
+static int hf_ntppriv_mode7_expired = -1;
+static int hf_ntppriv_mode7_keyuncached = -1;
+static int hf_ntppriv_mode7_local_addr = -1;
+static int hf_ntppriv_mode7_trap_addr = -1;
+static int hf_ntppriv_mode7_trap_port = -1;
+static int hf_ntppriv_mode7_sequence = -1;
+static int hf_ntppriv_mode7_settime = -1;
+static int hf_ntppriv_mode7_origtime = -1;
+static int hf_ntppriv_mode7_resets = -1;
+static int hf_ntppriv_traps_flags = -1;
+static int hf_ntppriv_mode7_local_addr6 = -1;
+static int hf_ntppriv_mode7_trap_addr6 = -1;
+static int hf_ntppriv_mode7_last_offset = -1;
+static int hf_ntppriv_mode7_drift_comp = -1;
+static int hf_ntppriv_mode7_compliance = -1;
+static int hf_ntppriv_mode7_watchdog_timer = -1;
+static int hf_ntppriv_mode7_poll32 = -1;
+static int hf_ntppriv_mode7_denied = -1;
+static int hf_ntppriv_mode7_oldversion = -1;
+static int hf_ntppriv_mode7_newversion = -1;
+static int hf_ntppriv_mode7_badlength = -1;
+static int hf_ntppriv_mode7_limitrejected = -1;
+static int hf_ntppriv_mode7_lamport = -1;
+static int hf_ntppriv_mode7_tsrounding = -1;
+static int hf_ntppriv_mode7_totalmem = -1;
+static int hf_ntppriv_mode7_freemem = -1;
+static int hf_ntppriv_mode7_findpeer_calls = -1;
+static int hf_ntppriv_mode7_allocations = -1;
+static int hf_ntppriv_mode7_demobilizations = -1;
+static int hf_ntppriv_mode7_hashcount = -1;
+static int hf_ntppriv_mode7_totalrecvbufs = -1;
+static int hf_ntppriv_mode7_freerecvbufs = -1;
+static int hf_ntppriv_mode7_fullrecvbufs = -1;
+static int hf_ntppriv_mode7_lowwater = -1;
+static int hf_ntppriv_mode7_dropped = -1;
+static int hf_ntppriv_mode7_ignored = -1;
+static int hf_ntppriv_mode7_received = -1;
+static int hf_ntppriv_mode7_notsent = -1;
+static int hf_ntppriv_mode7_interrupts = -1;
+static int hf_ntppriv_mode7_int_received = -1;
+static int hf_ntppriv_mode7_alarms = -1;
+static int hf_ntppriv_mode7_overflows = -1;
+static int hf_ntppriv_mode7_xmtcalls = -1;
+static int hf_ntppriv_mode7_rflags = -1;
+static int hf_ntppriv_mode7_mflags = -1;
+static int hf_ntppriv_mode7_int_name = -1;
+static int hf_ntppriv_mode7_int_flags = -1;
+static int hf_ntppriv_mode7_last_ttl = -1;
+static int hf_ntppriv_mode7_num_mcast = -1;
+static int hf_ntppriv_mode7_uptime = -1;
+static int hf_ntppriv_mode7_scopeid = -1;
+static int hf_ntppriv_mode7_ifindex = -1;
+static int hf_ntppriv_mode7_ifnum = -1;
+static int hf_ntppriv_mode7_peercnt = -1;
+static int hf_ntppriv_mode7_family = -1;
+static int hf_ntppriv_mode7_ignore_pkt = -1;
+static int hf_ntppriv_mode7_action = -1;
+static int hf_ntppriv_mode7_nvalues = -1;
+static int hf_ntppriv_mode7_ntimes = -1;
+static int hf_ntppriv_mode7_svalues = -1;
+static int hf_ntppriv_mode7_stimes = -1;
+static int hf_ntppriv_mode7_values = -1;
+static int hf_ntppriv_mode7_times = -1;
+static int hf_ntppriv_mode7_which = -1;
+static int hf_ntppriv_mode7_fudgetime = -1;
+static int hf_ntppriv_mode7_fudgeval_flags = -1;
+static int hf_ntppriv_mode7_ippeerlimit = -1;
+static int hf_ntppriv_mode7_restrict_flags = -1;
 
 static gint ett_ntp = -1;
 static gint ett_ntp_flags = -1;
@@ -619,8 +911,12 @@ static gint ett_ntpctrl_status = -1;
 static gint ett_ntpctrl_data = -1;
 static gint ett_ntpctrl_item = -1;
 static gint ett_ntppriv_auth_seq = -1;
-static gint ett_monlist_item = -1;
+static gint ett_mode7_item = -1;
 static gint ett_ntp_authenticator = -1;
+static gint ett_ntppriv_peer_list_flags = -1;
+static gint ett_ntppriv_config_flags = -1;
+static gint ett_ntppriv_sys_flag_flags = -1;
+static gint ett_ntppriv_reset_stats_flags = -1;
 
 static expert_field ei_ntp_ext = EI_INIT;
 
@@ -666,6 +962,51 @@ static const int *peer_status_flags[] = {
        NULL
 };
 
+static const int *ntppriv_peer_list_flags[] = {
+       &hf_ntppriv_mode7_peer_flags_config,
+       &hf_ntppriv_mode7_peer_flags_syspeer,
+       &hf_ntppriv_mode7_peer_flags_burst,
+       &hf_ntppriv_mode7_peer_flags_refclock,
+       &hf_ntppriv_mode7_peer_flags_prefer,
+       &hf_ntppriv_mode7_peer_flags_authenable,
+       &hf_ntppriv_mode7_peer_flags_sel_candidate,
+       &hf_ntppriv_mode7_peer_flags_shortlist,
+       NULL
+};
+
+static const int *ntppriv_config_flags[] = {
+       &hf_ntppriv_mode7_config_flags_auth,
+       &hf_ntppriv_mode7_config_flags_prefer,
+       &hf_ntppriv_mode7_config_flags_burst,
+       &hf_ntppriv_mode7_config_flags_iburst,
+       &hf_ntppriv_mode7_config_flags_noselect,
+       &hf_ntppriv_mode7_config_flags_skey,
+       NULL
+};
+
+static const int *ntppriv_sys_flag_flags[] = {
+       &hf_ntppriv_mode7_sys_flags_bclient,
+       &hf_ntppriv_mode7_sys_flags_pps,
+       &hf_ntppriv_mode7_sys_flags_ntp,
+       &hf_ntppriv_mode7_sys_flags_kernel,
+       &hf_ntppriv_mode7_sys_flags_monitor,
+       &hf_ntppriv_mode7_sys_flags_filegen,
+       &hf_ntppriv_mode7_sys_flags_auth,
+       &hf_ntppriv_mode7_sys_flags_cal,
+       NULL
+};
+
+static const int *ntppriv_reset_stats_flags[] = {
+       &hf_ntppriv_mode7_reset_stats_flags_allpeers,
+       &hf_ntppriv_mode7_reset_stats_flags_io,
+       &hf_ntppriv_mode7_reset_stats_flags_sys,
+       &hf_ntppriv_mode7_reset_stats_flags_mem,
+       &hf_ntppriv_mode7_reset_stats_flags_timer,
+       &hf_ntppriv_mode7_reset_stats_flags_auth,
+       &hf_ntppriv_mode7_reset_stats_flags_ctl,
+       NULL
+};
+
 /* parser definitions */
 static tvbparse_wanted_t *want;
 static tvbparse_wanted_t *want_ignore;
@@ -1443,6 +1784,11 @@ dissect_ntp_priv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *ntp_tree, nt
        proto_tree_add_item_ret_uint(ntp_tree, hf_ntppriv_impl, tvb, 2, 1, ENC_NA, &impl);
        proto_tree_add_item_ret_uint(ntp_tree, hf_ntppriv_reqcode, tvb, 3, 1, ENC_NA, &reqcode);
 
+       col_append_fstr(pinfo->cinfo, COL_INFO, ", %s, %s",
+               (flags & NTPPRIV_R_MASK) ? "Response" : "Request",
+               val_to_str_ext_const(reqcode, &priv_rc_types_ext, "Unknown"));
+
+
        seq = 0xff000000 | impl;
        key[0].length = 1;
        key[0].key = &seq;
@@ -1490,7 +1836,7 @@ dissect_ntp_priv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *ntp_tree, nt
                }
        }
 
-       if (impl == XNTPD && (reqcode == MON_GETLIST || reqcode == MON_GETLIST_1)) {
+       if (impl == XNTPD) {
 
                guint64 numitems;
                guint64 itemsize;
@@ -1499,8 +1845,8 @@ dissect_ntp_priv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *ntp_tree, nt
 
                guint32 v6_flag = 0;
 
-               proto_item* monlist_item;
-               proto_tree* monlist_item_tree;
+               proto_item *mode7_item;
+               proto_tree *mode7_item_tree = NULL;
 
                proto_tree_add_bits_item(ntp_tree, hf_ntppriv_errcode, tvb, 32, 4, ENC_BIG_ENDIAN);
                proto_tree_add_bits_ret_val(ntp_tree, hf_ntppriv_numitems, tvb, 36, 12, &numitems, ENC_BIG_ENDIAN);
@@ -1511,42 +1857,827 @@ dissect_ntp_priv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *ntp_tree, nt
 
                        offset = 8 + (guint16)itemsize * i;
 
-                       monlist_item = proto_tree_add_string_format(ntp_tree, hf_monlist_item, tvb, offset,
-                               (gint)itemsize, "Monlist Item", "Monlist item: address: %s:%u",
-                               tvb_ip_to_str(tvb, offset + 16), tvb_get_ntohs(tvb, offset + ((reqcode == MON_GETLIST_1) ? 28 : 20)));
-                       monlist_item_tree = proto_item_add_subtree(monlist_item, ett_monlist_item);
-
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_avgint, tvb, offset, 4, ENC_BIG_ENDIAN);
-                       offset += 4;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_lsint, tvb, offset, 4, ENC_BIG_ENDIAN);
-                       offset += 4;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_restr, tvb, offset, 4, ENC_BIG_ENDIAN);
-                       offset += 4;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_count, tvb, offset, 4, ENC_BIG_ENDIAN);
-                       offset += 4;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
-                       offset += 4;
-                       if (reqcode == MON_GETLIST_1) {
-                               proto_tree_add_item(monlist_item_tree, hf_ntppriv_daddr, tvb, offset, 4, ENC_BIG_ENDIAN);
-                               offset += 4;
-                               proto_tree_add_item(monlist_item_tree, hf_ntppriv_flags, tvb, offset, 4, ENC_BIG_ENDIAN);
-                               offset += 4;
+                       if ((reqcode != PRIV_RC_MON_GETLIST) && (reqcode != PRIV_RC_MON_GETLIST_1)) {
+                               mode7_item = proto_tree_add_string_format(ntp_tree, hf_ntppriv_mode7_item, tvb, offset,(gint)itemsize,
+                                       "", "%s Item", val_to_str_ext_const(reqcode, &priv_rc_types_ext, "Unknown") );
+                               mode7_item_tree = proto_item_add_subtree(mode7_item, ett_mode7_item);
                        }
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_port, tvb, offset, 2, ENC_BIG_ENDIAN);
-                       offset += 2;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
-                       offset += 1;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_version, tvb, offset, 1, ENC_BIG_ENDIAN);
-                       offset += 1;
-                       proto_tree_add_item_ret_uint(monlist_item_tree, hf_ntppriv_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN, &v6_flag);
-                       offset += 4;
-                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_unused, tvb, offset, 4, ENC_BIG_ENDIAN);
-                       offset += 4;
-                       if (v6_flag != 0) {
-                               proto_tree_add_item(monlist_item_tree, hf_ntppriv_addr6, tvb, offset, 16, ENC_NA);
+
+                       switch (reqcode) {
+                       case PRIV_RC_MON_GETLIST:
+                       case PRIV_RC_MON_GETLIST_1:
+
+                               mode7_item = proto_tree_add_string_format(ntp_tree, hf_ntppriv_mode7_item, tvb, offset,
+                                       (gint)itemsize, "Monlist Item", "Monlist item: address: %s:%u",
+                                       tvb_ip_to_str(tvb, offset + 16), tvb_get_ntohs(tvb, offset + ((reqcode == PRIV_RC_MON_GETLIST_1) ? 28 : 20)));
+                               mode7_item_tree = proto_item_add_subtree(mode7_item, ett_mode7_item);
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_avgint, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_lsint, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_restr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_count, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               if (reqcode == PRIV_RC_MON_GETLIST_1) {
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_daddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_flags, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                               }
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_port, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_version, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item_ret_uint(mode7_item_tree, hf_ntppriv_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN, &v6_flag);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_unused, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               if (v6_flag != 0) {
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_addr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                                       if (reqcode == PRIV_RC_MON_GETLIST_1)
+                                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_daddr6, tvb, offset, 16, ENC_NA);
+                               }
+                               break;
+
+                       case PRIV_RC_PEER_LIST:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_port, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_peer_flags, ett_ntppriv_peer_list_flags, ntppriv_peer_list_flags, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_PEER_LIST_SUM:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dstaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcport, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_stratum, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hpoll, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_ppoll, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_reach, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_peer_flags, ett_ntppriv_peer_list_flags, ntppriv_peer_list_flags, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_delay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_offset, tvb, offset, 8, ENC_BIG_ENDIAN);
+                               offset += 8;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dispersion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dstaddr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcaddr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_PEER_INFO:
+
+                               if (flags & NTPPRIV_R_MASK) {
+                                       /* response */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dstaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcport, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_peer_flags, ett_ntppriv_peer_list_flags, ntppriv_peer_list_flags, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_leap, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_pmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_stratum, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_ppoll, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hpoll, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_precision, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_version, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 1, ENC_NA);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_reach, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unreach, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_flash, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ttl, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_flash2, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_associd, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_keyid, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_pkeyid, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_refid, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timer, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_rootdelay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_rootdispersion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_reftime, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_org, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_rec, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntp_xmt, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_filtdelay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_filtoffset, tvb, offset, 8, ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_order, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_delay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dispersion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_offset, tvb, offset, 8, ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_selectdis, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_estbdelay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dstaddr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcaddr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                               } else {
+                                       /* request */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_port, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_peer_flags, ett_ntppriv_peer_list_flags, ntppriv_peer_list_flags, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                               }
+                               break;
+
+                       case PRIV_RC_PEER_STATS:
+
+                               if (flags & NTPPRIV_R_MASK) {
+                                       /* response */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dstaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcport, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_peer_flags, ett_ntppriv_peer_list_flags, ntppriv_peer_list_flags, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereceived, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timetosend, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereachable, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_sent, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_processed, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badauth, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_bogusorg, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_oldpkt, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_seldisp, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_selbroken, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_candidate, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 1, ENC_NA);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 1, ENC_NA);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 1, ENC_NA);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dstaddr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_srcaddr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                               } else {
+                                       /* request */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_port, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_peer_flags, ett_ntppriv_peer_list_flags, ntppriv_peer_list_flags, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                               }
+                               break;
+
+                       case PRIV_RC_SYS_INFO:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_pmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_leap, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_stratum, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_precision, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_rootdelay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_rootdispersion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_refid, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_reftime, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+                               offset += 8;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_poll32, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_sys_flags8, ett_ntppriv_sys_flag_flags, ntppriv_sys_flag_flags, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 3, ENC_NA);
+                               offset += 3;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_bdelay, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_freq, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_authdelay, tvb, offset, 8, ENC_BIG_ENDIAN);
+                               offset += 8;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_stability, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
                                offset += 16;
-                               if (reqcode == MON_GETLIST_1)
-                                       proto_tree_add_item(monlist_item_tree, hf_ntppriv_daddr6, tvb, offset, 16, ENC_NA);
+                               break;
+
+                       case PRIV_RC_SYS_STATS:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timeup, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_denied, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_oldversion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_newversion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badversion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badlength, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_processed, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badauth, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereceived, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_limitrejected, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_lamport, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_tsrounding, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_IO_STATS:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_totalrecvbufs, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_freerecvbufs, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fullrecvbufs, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_lowwater, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_dropped, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ignored, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_received, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_sent, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_notsent, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_interrupts, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_int_received, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_MEM_STATS:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_totalmem, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_freemem, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_findpeer_calls, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_allocations, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_demobilizations, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hashcount, tvb, offset, (gint)itemsize - 20, ENC_NA);
+                               offset += ((gint)itemsize - 20);
+                               break;
+
+                       case PRIV_RC_LOOP_INFO:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_last_offset, tvb, offset, 8, ENC_BIG_ENDIAN);
+                               offset += 8;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_drift_comp, tvb, offset, 8, ENC_BIG_ENDIAN);
+                               offset += 8;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_compliance, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_watchdog_timer, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_TIMER_STATS:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_alarms, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_overflows, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_xmtcalls, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_CONFIG:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_hmode, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_version, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_minpoll, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_maxpoll, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_config_flags, ett_ntppriv_config_flags, ntppriv_config_flags, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ttl, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 2, ENC_NA);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_keyid, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_key_file, tvb, offset, 128, ENC_ASCII|ENC_NA);
+                               offset += 128;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_UNCONFIG:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_SET_SYS_FLAG:
+                       case PRIV_RC_CLR_SYS_FLAG:
+
+                               proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_sys_flags, ett_ntppriv_sys_flag_flags, ntppriv_sys_flag_flags, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_GET_RESTRICT:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_count, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_rflags, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mflags, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mask6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_RESADDFLAGS:
+                       case PRIV_RC_RESSUBFLAGS:
+                       case PRIV_RC_UNRESTRICT:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ippeerlimit, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_restrict_flags, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mflags, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mask6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_RESET_STATS:
+
+                               proto_tree_add_bitmask(mode7_item_tree, tvb, offset, hf_ntppriv_mode7_reset_stats_flags, ett_ntppriv_reset_stats_flags, ntppriv_reset_stats_flags, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_RESET_PEER:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_TRUSTKEY:
+                       case PRIV_RC_UNTRUSTKEY:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_key, tvb, offset, 8, ENC_LITTLE_ENDIAN);
+                               offset += 8;
+                               break;
+
+                       case PRIV_RC_AUTHINFO:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_numkeys, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_numfreekeys, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_keylookups, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_keynotfound, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_encryptions, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_decryptions, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_expired, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_keyuncached, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_TRAPS:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_local_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_trap_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_trap_port, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_sequence, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_settime, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_origtime, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_resets, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_traps_flags, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_local_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_trap_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_ADD_TRAP:
+                       case PRIV_RC_CLR_TRAP:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_local_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_trap_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_trap_port, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 2, ENC_NA);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_local_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_trap_addr6, tvb, offset, 16, ENC_NA);
+                               offset += 16;
+                               break;
+
+                       case PRIV_RC_REQUEST_KEY:
+                       case PRIV_RC_CONTROL_KEY:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntp_keyid, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_CTL_STATS:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timereset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_req, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badpkts, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_responses, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_frags, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_errors, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_tooshort, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_inputresp, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_inputfrag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_inputerr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badoffset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badversion, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_datatooshort, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badop, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_asyncmsgs, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_GET_CLOCKINFO:
+
+                               if (flags & NTPPRIV_R_MASK) {
+                                       /* response */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_type, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_clock_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_lastevent, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_currentstatus, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_polls, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_noresponse, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_badformat, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_baddata, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_timestarted, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fudgetime1, tvb, offset, 8, ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fudgetime2, tvb, offset, 8, ENC_BIG_ENDIAN);
+                                       offset += 8;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fudgeval1, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fudgeval2, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                               } else {
+                                       /* request */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                               }
+                               break;
+
+                       case PRIV_RC_SET_CLKFUDGE:
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_which, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fudgetime, tvb, offset, 8, ENC_BIG_ENDIAN);
+                               offset += 8;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_fudgeval_flags, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_GET_KERNEL:
+
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_kernel_offset, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_freq, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_maxerror, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_esterror, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_status, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_shift, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_constant, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_precision, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_tolerance, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ppsfreq, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_jitter, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_stabil, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_jitcnt, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_calcnt, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_errcnt, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_stbcnt, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               break;
+
+                       case PRIV_RC_GET_CLKBUGINFO:
+                               if (flags & NTPPRIV_R_MASK) {
+                                       /* response */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_nvalues, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ntimes, tvb, offset, 1, ENC_BIG_ENDIAN);
+                                       offset += 1;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_svalues, tvb, offset, 2, ENC_BIG_ENDIAN);
+                                       offset += 2;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_stimes, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_values, tvb, offset, 64, ENC_NA);
+                                       offset += 64;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_times, tvb, offset, 256, ENC_NA);
+                                       offset += 256;
+                               } else {
+                                       /* request */
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 4;
+                               }
+                               break;
+
+                       case PRIV_RC_IF_STATS:
+                       case PRIV_RC_IF_RELOAD:
+                               v6_flag = tvb_get_ntohl(tvb, offset + 48);
+                               if (v6_flag == 0) {
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 16;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_bcast, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 16;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
+                                       offset += 16;
+                               } else {
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_addr6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_bcast6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                                       proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_mask6, tvb, offset, 16, ENC_NA);
+                                       offset += 16;
+                               }
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_v6_flag, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_int_name, tvb, offset, 32, ENC_ASCII|ENC_NA);
+                               offset += 32;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_int_flags, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_last_ttl, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_num_mcast, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_received, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_sent, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_notsent, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_uptime, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_scopeid, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ifindex, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ifnum, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_peercnt, tvb, offset, 4, ENC_BIG_ENDIAN);
+                               offset += 4;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_family, tvb, offset, 2, ENC_BIG_ENDIAN);
+                               offset += 2;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_ignore_pkt, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_action, tvb, offset, 1, ENC_BIG_ENDIAN);
+                               offset += 1;
+                               proto_tree_add_item(mode7_item_tree, hf_ntppriv_mode7_unused, tvb, offset, 4, ENC_NA);
+                               offset += 4;
+                               break;
+
                        }
                }
        }
@@ -1863,11 +2994,11 @@ proto_register_ntp(void)
                { &hf_ntppriv_mbz, {
                        "Reserved", "ntp.priv.reserved", FT_UINT8, BASE_HEX,
                        NULL, 0, NULL, HFILL }},
-               { &hf_monlist_item, {
-                       "Monlist item", "ntp.priv.monlist.item",
+               { &hf_ntppriv_mode7_item, {
+                       "Mode7 item", "ntp.priv.mode7.item",
                        FT_STRINGZ, BASE_NONE, NULL, 0x00, NULL, HFILL }},
                { &hf_ntppriv_itemsize, {
-                       "Size of data item", "ntp.priv.monlist.itemsize", FT_UINT16, BASE_DEC,
+                       "Size of data item", "ntp.priv.itemsize", FT_UINT16, BASE_DEC,
                        NULL, 0, NULL, HFILL }},
                { &hf_ntppriv_avgint, {
                        "avgint", "ntp.priv.monlist.avgint", FT_UINT32, BASE_DEC,
@@ -1914,7 +3045,630 @@ proto_register_ntp(void)
                { &hf_ntppriv_tstamp, {
                        "Authentication timestamp", "ntp.priv.tstamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC,
                        NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_addr, {
+                       "Address", "ntp.priv.mode7.address", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_mask, {
+                       "Mask", "ntp.priv.mode7.mask", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_bcast, {
+                       "Bcast", "ntp.priv.mode7.bcast", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_port, {
+                       "Port", "ntp.priv.mode7.port", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_hmode, {
+                       "HMode", "ntp.priv.mode7.hmode", FT_UINT8, BASE_DEC,
+                       VALS(mode_types), 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags, {
+                       "Flags", "ntp.priv.mode7.peer.flags", FT_UINT8, BASE_HEX,
+                       NULL, 0xFF, NULL, HFILL }},
+               { &hf_ntppriv_mode7_v6_flag, {
+                       "IPv6 Flag", "ntp.priv.mode7.ipv6_flag", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_unused, {
+                       "Unused", "ntp.priv.mode7.unused", FT_BYTES, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_addr6, {
+                       "IPv6 addr", "ntp.priv.mode7.address6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_mask6, {
+                       "IPv6 mask", "ntp.priv.mode7.mask6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_bcast6, {
+                       "IPv6 bcast", "ntp.priv.mode7.bcast6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_config, {
+                       "Config", "ntp.priv.mode7.peer.flags.config", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_CONFIG, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_syspeer, {
+                       "Syspeer", "ntp.priv.mode7.peer.flags.syspeer", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_SYSPEER, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_burst, {
+                       "Burst", "ntp.priv.mode7.peer.flags.burst", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_BURST, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_refclock, {
+                       "Refclock", "ntp.priv.mode7.peer.flags.refclock", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_REFCLOCK, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_prefer, {
+                       "Prefer", "ntp.priv.mode7.peer.flags.prefer", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_PREFER, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_authenable, {
+                       "Auth enable", "ntp.priv.mode7.peer.flags.authenable", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_AUTHENABLE, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_sel_candidate, {
+                       "Sel Candidate", "ntp.priv.mode7.peer.flags.sel_candidate", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_SEL_CANDIDATE, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peer_flags_shortlist, {
+                       "Shortlist", "ntp.priv.mode7.peer.flags.shortlist", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_INFO_FLAG_SHORTLIST, NULL, HFILL }},
+               { &hf_ntppriv_mode7_dstaddr, {
+                       "Destination address", "ntp.priv.mode7.dstaddress", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_srcaddr, {
+                       "Source address", "ntp.priv.mode7.srcaddress", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_srcport, {
+                       "Source port", "ntp.priv.mode7.srcport", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_count, {
+                       "Count", "ntp.priv.mode7.count", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_hpoll, {
+                       "Host polling intervall", "ntp.priv.mode7.hpoll", FT_INT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reach, {
+                       "Reach", "ntp.priv.mode7.reach", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_delay, {
+                       "Delay", "ntp.priv.mode7.delay", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_offset, {
+                       "Offset", "ntp.priv.mode7.offset", FT_UINT64, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_dispersion, {
+                       "Dispersion", "ntp.priv.mode7.dispersion", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_dstaddr6, {
+                       "IPv6 destination addr", "ntp.priv.mode7.dstaddress6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_srcaddr6, {
+                       "IPv6 source addr", "ntp.priv.mode7.srcaddress6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_leap, {
+                       "Leap", "ntp.priv.mode7.leap", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_pmode, {
+                       "Peer mode", "ntp.priv.mode7.pmode", FT_UINT8, BASE_DEC,
+                       VALS(mode_types), 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_version, {
+                       "Version", "ntp.priv.mode7.version", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_unreach, {
+                       "Unreach", "ntp.priv.mode7.unreach", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_flash, {
+                       "Flash", "ntp.priv.mode7.flash", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ttl, {
+                       "TTL", "ntp.priv.mode7.ttl", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_flash2, {
+                       "Flash new", "ntp.priv.mode7.flash2", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_associd, {
+                       "Association ID", "ntp.priv.mode7.associd", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_pkeyid, {
+                       "Peer Key ID", "ntp.priv.mode7.pkeyid", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_timer, {
+                       "Timer", "ntp.priv.mode7.timer", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_filtdelay, {
+                       "Filt delay", "ntp.priv.mode7.filtdelay", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_filtoffset, {
+                       "Filt offset", "ntp.priv.mode7.filtoffset", FT_INT64, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_order, {
+                       "Order", "ntp.priv.mode7.order", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_selectdis, {
+                       "Selectdis", "ntp.priv.mode7.selectdis", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_estbdelay, {
+                       "Estbdelay", "ntp.priv.mode7.estbdelay", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_bdelay, {
+                       "Bdelay", "ntp.priv.mode7.bdelay", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_authdelay, {
+                       "Auth delay", "ntp.priv.mode7.authdelay", FT_INT64, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_minpoll, {
+                       "Minpoll", "ntp.priv.mode7.minpoll", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_maxpoll, {
+                       "Maxpoll", "ntp.priv.mode7.maxpoll", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags, {
+                       "Flags", "ntp.priv.config.flags", FT_UINT8, BASE_HEX,
+                       NULL, 0xFF, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags_auth, {
+                       "Authenable", "ntp.priv.mode7.config.flags.authenable", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_CONF_FLAG_AUTHENABLE, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags_prefer, {
+                       "Prefer", "ntp.priv.mode7.config.flags.prefer", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_CONF_FLAG_PREFER, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags_burst, {
+                       "Burst", "ntp.priv.mode7.config.flags.burst", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_CONF_FLAG_BURST, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags_iburst, {
+                       "IBurst", "ntp.priv.mode7.config.flags.iburst", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_CONF_FLAG_IBURST, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags_noselect, {
+                       "No Select", "ntp.priv.mode7.config.flags.no_select", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_CONF_FLAG_NOSELECT, NULL, HFILL }},
+               { &hf_ntppriv_mode7_config_flags_skey, {
+                       "Skey", "ntp.priv.mode7.config.flags.skey", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_CONF_FLAG_SKEY, NULL, HFILL }},
+               { &hf_ntppriv_mode7_key_file, {
+                       "Key file name", "ntp.priv.mode7.key_file", FT_STRING, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags, {
+                       "Flags", "ntp.priv.mode7.sys.flags", FT_UINT32, BASE_HEX,
+                       NULL, 0xFF, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_bclient, {
+                       "Bclient", "ntp.priv.mode7.sys.flags.bclient", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_BCLIENT, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_pps, {
+                       "PPS", "ntp.priv.mode7.sys.flags.pps", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_PPS, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_ntp, {
+                       "NTP", "ntp.priv.mode7.sys.flags.ntp", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_NTP, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_kernel, {
+                       "Kernel", "ntp.priv.mode7.sys.flags.kernel", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_KERNEL, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_monitor, {
+                       "Monitor", "ntp.priv.mode7.sys.flags.monitor", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_MONITOR, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_filegen, {
+                       "Filegen", "ntp.priv.mode7.sys.flags.filegen", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_FILEGEN, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_auth, {
+                       "Auth", "ntp.priv.mode7.sys.flags.auth", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_AUTH, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags_cal, {
+                       "Cal", "ntp.priv.mode7.sys.flags.cal", FT_BOOLEAN, 8,
+                       TFS(&tfs_set_notset), PRIV_SYS_FLAG_CAL, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags, {
+                       "Flags", "ntp.priv.mode7.reset_stats.flags", FT_UINT32, BASE_HEX,
+                       NULL, 0xFF, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_allpeers, {
+                       "All Peers", "ntp.priv.mode7.reset_stats.flags.allpeers", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_ALLPEERS, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_io, {
+                       "IO", "ntp.priv.mode7.reset_stats.flags.io", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_IO, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_sys, {
+                       "Sys", "ntp.priv.mode7.reset_stats.flags.sys", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_SYS, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_mem, {
+                       "Mem", "ntp.priv.mode7.reset_stats.flags.mem", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_MEM, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_timer, {
+                       "Timer", "ntp.priv.mode7.reset_stats.flags.timer", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_TIMER, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_auth, {
+                       "Auth", "ntp.priv.mode7.reset_stats.flags.auth", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_AUTH, NULL, HFILL }},
+               { &hf_ntppriv_mode7_reset_stats_flags_ctl, {
+                       "Ctl", "ntp.priv.mode7.reset_stats.flags.ctl", FT_BOOLEAN, 32,
+                       TFS(&tfs_set_notset), PRIV_RESET_FLAG_CTL, NULL, HFILL }},
+               { &hf_ntppriv_mode7_key, {
+                       "Key", "ntp.priv.mode7.key", FT_UINT64, BASE_HEX,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_timeup, {
+                       "Time up", "ntp.priv.mode7.timeup", FT_UINT32, BASE_DEC,
+                       NULL, 0, "time counters were reset", HFILL }},
+               { &hf_ntppriv_mode7_timereset, {
+                       "Time reset", "ntp.priv.mode7.timereset", FT_UINT32, BASE_DEC,
+                       NULL, 0, "time counters were reset", HFILL }},
+               { &hf_ntppriv_mode7_timereceived, {
+                       "Time received", "ntp.priv.mode7.timereceived", FT_UINT32, BASE_DEC,
+                       NULL, 0, "time since a packet received", HFILL }},
+               { &hf_ntppriv_mode7_timetosend, {
+                       "Time to send", "ntp.priv.mode7.timetosend", FT_UINT32, BASE_DEC,
+                       NULL, 0, "time until a packet sent", HFILL }},
+               { &hf_ntppriv_mode7_timereachable, {
+                       "Time reachable", "ntp.priv.mode7.timereachable", FT_UINT32, BASE_DEC,
+                       NULL, 0, "time peer has been reachable", HFILL }},
+               { &hf_ntppriv_mode7_sent, {
+                       "Sent", "ntp.priv.mode7.sent", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_processed, {
+                       "Processed", "ntp.priv.mode7.processed", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badauth, {
+                       "Bad authentiation", "ntp.priv.mode7.badauth", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_bogusorg, {
+                       "Bogus origin", "ntp.priv.mode7.bogusorg", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_oldpkt, {
+                       "Old paket", "ntp.priv.mode7.oldpkt", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_seldisp, {
+                       "Bad dispersion", "ntp.priv.mode7.seldisp", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_selbroken, {
+                       "Bad reference time", "ntp.priv.mode7.selbroken", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_candidate, {
+                       "Candidate", "ntp.priv.mode7.candidate", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_numkeys, {
+                       "Num keys", "ntp.priv.mode7.numkeys", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_numfreekeys, {
+                       "Num free keys", "ntp.priv.mode7.numfreekeys", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_keylookups, {
+                       "Keylookups", "ntp.priv.mode7.keylookups", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_keynotfound, {
+                       "Key not found", "ntp.priv.mode7.keynotfound", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_encryptions, {
+                       "Encryptions", "ntp.priv.mode7.encryptions", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_decryptions, {
+                       "Decryptions", "ntp.priv.mode7.decryptions", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_expired, {
+                       "Expired", "ntp.priv.mode7.expired", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_keyuncached, {
+                       "Key uncached", "ntp.priv.mode7.keyuncached", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_local_addr, {
+                       "Local address", "ntp.priv.mode7.local_address", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_trap_addr, {
+                       "Trap address", "ntp.priv.mode7.trap_address", FT_IPv4, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_trap_port, {
+                       "Trap port", "ntp.priv.mode7.trap_port", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sequence, {
+                       "Sequence number", "ntp.priv.mode7.sequence", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_settime, {
+                       "Trap set time", "ntp.priv.mode7.settime", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_origtime, {
+                       "Trap originally time", "ntp.priv.mode7.origtime", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_resets, {
+                       "Resets", "ntp.priv.mode7.resets", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_traps_flags, {
+                       "Flags", "ntp.priv.traps.flags", FT_UINT32, BASE_HEX,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_local_addr6, {
+                       "IPv6 local addr", "ntp.priv.mode7.local_address6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_trap_addr6, {
+                       "IPv6 trap addr", "ntp.priv.mode7.trap_address6", FT_IPv6, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_req, {
+                       "Requests", "ntp.priv.mode7.requests", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badpkts, {
+                       "Bad pakets", "ntp.priv.mode7.bad_pakets", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_responses, {
+                       "Responses", "ntp.priv.mode7.responses", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_frags, {
+                       "Fragments", "ntp.priv.mode7.fragments", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_errors, {
+                       "Errors", "ntp.priv.mode7.errors", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_tooshort, {
+                       "Too short pakets", "ntp.priv.mode7.too_short", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_inputresp, {
+                       "Responses on input", "ntp.priv.mode7.input_responses", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_inputfrag, {
+                       "Fragments on input", "ntp.priv.mode7.input_fragments", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_inputerr, {
+                       "Errors on input", "ntp.priv.mode7.input_errors", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badoffset, {
+                       "Non zero offset pakets", "ntp.priv.mode7.bad_offset", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badversion, {
+                       "Unknown version pakets", "ntp.priv.mode7.bad_version", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_datatooshort, {
+                       "Data too short", "ntp.priv.mode7.data_too_short", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badop, {
+                       "Bad op code found", "ntp.priv.mode7.badop", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_asyncmsgs, {
+                       "Async messages", "ntp.priv.mode7.async_messages", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_type, {
+                       "Type", "ntp.priv.mode7.type", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_clock_flags, {
+                       "Clock Flags", "ntp.priv.mode7.clock_flags", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_lastevent, {
+                       "Last event", "ntp.priv.mode7.lastevent", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_currentstatus, {
+                       "Current status", "ntp.priv.mode7.currentstatus", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_polls, {
+                       "Polls", "ntp.priv.mode7.polls", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_noresponse, {
+                       "Noresponse", "ntp.priv.mode7.noresponse", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badformat, {
+                       "Bad format", "ntp.priv.mode7.badformat", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_baddata, {
+                       "Bad data", "ntp.priv.mode7.baddata", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_timestarted, {
+                       "Time started", "ntp.priv.mode7.timestarted", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fudgetime1, {
+                       "Fudge time 1", "ntp.priv.mode7.fudgetime1", FT_UINT64, BASE_HEX,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fudgetime2, {
+                       "Fudge time 2", "ntp.priv.mode7.fudgetime2", FT_UINT64, BASE_HEX,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fudgeval1, {
+                       "Fudge val 1", "ntp.priv.mode7.fudgeval1", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fudgeval2, {
+                       "Fudge val 2", "ntp.priv.mode7.fudgeval2", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_kernel_offset, {
+                       "Offset", "ntp.priv.mode7.kernel_offset", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_freq, {
+                       "Freq", "ntp.priv.mode7.freq", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_stability, {
+                       "Stability (ppm)", "ntp.priv.mode7.stability", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_maxerror, {
+                       "Max error", "ntp.priv.mode7.maxerror", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_esterror, {
+                       "Est error", "ntp.priv.mode7.esterror", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_status, {
+                       "Status", "ntp.priv.mode7.status", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_shift, {
+                       "Shift", "ntp.priv.mode7.shift", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_constant, {
+                       "Constant", "ntp.priv.mode7.constant", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_precision, {
+                       "Precision", "ntp.priv.mode7.precision", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_tolerance, {
+                       "tolerance", "ntp.priv.mode7.tolerance", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ppsfreq, {
+                       "ppsfreq", "ntp.priv.mode7.ppsfreq", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_jitter, {
+                       "jitter", "ntp.priv.mode7.jitter", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_stabil, {
+                       "stabil", "ntp.priv.mode7.stabil", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_jitcnt, {
+                       "jitcnt", "ntp.priv.mode7.jitcnt", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_calcnt, {
+                       "calcnt", "ntp.priv.mode7.calcnt", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_errcnt, {
+                       "errcnt", "ntp.priv.mode7.errcnt", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_stbcnt, {
+                       "stbcnt", "ntp.priv.mode7.stbcnt", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_last_offset, {
+                       "Last offset", "ntp.priv.mode7.last_offset", FT_INT64, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_drift_comp, {
+                       "Drift comp", "ntp.priv.mode7.drift_comp", FT_INT64, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_compliance, {
+                       "Compliance", "ntp.priv.mode7.compliance", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_watchdog_timer, {
+                       "Watchdog timer", "ntp.priv.mode7.watchdog_timer", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_poll32, {
+                       "Poll", "ntp.priv.mode7.poll", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_sys_flags8, {
+                       "Flags", "ntp.priv.mode7.sys.flags8", FT_UINT8, BASE_HEX,
+                       NULL, 0xFF, NULL, HFILL }},
+               { &hf_ntppriv_mode7_denied, {
+                       "Denied", "ntp.priv.mode7.denied", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_oldversion, {
+                       "Old version", "ntp.priv.mode7.oldversion", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_newversion, {
+                       "New version", "ntp.priv.mode7.newversion", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_badlength, {
+                       "Bad length", "ntp.priv.mode7.badlength", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_limitrejected, {
+                       "Limit rejected", "ntp.priv.mode7.limitrejected", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_lamport, {
+                       "Lamport violation", "ntp.priv.mode7.lamport", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_tsrounding, {
+                       "Timestamp rounding error", "ntp.priv.mode7.tsrounding", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_totalmem, {
+                       "Total memory", "ntp.priv.mode7.totalmem", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_freemem, {
+                       "Free memory", "ntp.priv.mode7.freemem", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_findpeer_calls, {
+                       "Find peer calls", "ntp.priv.mode7.findpeer_calls", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_allocations, {
+                       "Allocations", "ntp.priv.mode7.allocations", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_demobilizations, {
+                       "Demobilizations", "ntp.priv.mode7.demobilizations", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_hashcount, {
+                       "Hashcount", "ntp.priv.mode7.hashcount", FT_BYTES, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_totalrecvbufs, {
+                       "Toal receive buffer", "ntp.priv.mode7.totalrecvbufs", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_freerecvbufs, {
+                       "Free receive buffer", "ntp.priv.mode7.freerecvbufs", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fullrecvbufs, {
+                       "Full receive buffer", "ntp.priv.mode7.fullrecvbufs", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_lowwater, {
+                       "Low water", "ntp.priv.mode7.lowwater", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_dropped, {
+                       "Dropped pakets", "ntp.priv.mode7.dropped", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ignored, {
+                       "Ignored pakets", "ntp.priv.mode7.ignored", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_received, {
+                       "Received pakets", "ntp.priv.mode7.received", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_notsent, {
+                       "Not sent pakets", "ntp.priv.mode7.notsent", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_interrupts, {
+                       "Interrupts", "ntp.priv.mode7.interrupts", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_int_received, {
+                       "Received by interrupt handler", "ntp.priv.mode7.int_received", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_alarms, {
+                       "Alarms", "ntp.priv.mode7.alarms", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_overflows, {
+                       "Overflows", "ntp.priv.mode7.overflows", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_xmtcalls, {
+                       "Trasmitted calls", "ntp.priv.mode7.xmtcalls", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_rflags, {
+                       "Rflags", "ntp.priv.mode7.rflags", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_mflags, {
+                       "Mflags", "ntp.priv.mode7.mflags", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_int_name, {
+                       "Interface name", "ntp.priv.mode7.int_name", FT_STRING, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_int_flags, {
+                       "Interface flags", "ntp.priv.mode7.int_flags", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_last_ttl, {
+                       "Last TTL specified", "ntp.priv.mode7.last_ttl", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_num_mcast, {
+                       "Numer multicast sockets", "ntp.priv.mode7.num_mcast", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_uptime, {
+                       "Uptime", "ntp.priv.mode7.uptime", FT_INT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_scopeid, {
+                       "Scopeid", "ntp.priv.mode7.scopeid", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ifindex, {
+                       "Ifindex", "ntp.priv.mode7.ifindex", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ifnum, {
+                       "Ifnum", "ntp.priv.mode7.ifnum", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_peercnt, {
+                       "Peer count", "ntp.priv.mode7.peercnt", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_family, {
+                       "Address family", "ntp.priv.mode7.family", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ignore_pkt, {
+                       "Ignore pakets", "ntp.priv.mode7.ignore_pkts", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_action, {
+                       "Action", "ntp.priv.mode7.action", FT_UINT8, BASE_DEC,
+                       VALS(priv_mode7_int_action), 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_nvalues, {
+                       "Nvalues", "ntp.priv.mode7.nvalues", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ntimes, {
+                       "Ntimes", "ntp.priv.mode7.ntimes", FT_UINT8, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_svalues, {
+                       "Svalues", "ntp.priv.mode7.svalues", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_stimes, {
+                       "Stimes", "ntp.priv.mode7.stimes", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_values, {
+                       "Values", "ntp.priv.mode7.values", FT_BYTES, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_times, {
+                       "Times", "ntp.priv.mode7.times", FT_BYTES, BASE_NONE,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_which, {
+                       "Which", "ntp.priv.mode7.which", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fudgetime, {
+                       "Fudgetime", "ntp.priv.mode7.fudgetime", FT_UINT64, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_fudgeval_flags, {
+                       "Fudgeval flags", "ntp.priv.mode7.fudgeval_flags", FT_UINT32, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_ippeerlimit, {
+                       "IP peer limit", "ntp.priv.mode7.ippeerlimit", FT_INT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               { &hf_ntppriv_mode7_restrict_flags, {
+                       "Restrict flags", "ntp.priv.mode7.restrict_flags", FT_UINT16, BASE_DEC,
+                       NULL, 0, NULL, HFILL }},
+               /* Todo */
        };
+
        static gint *ett[] = {
                &ett_ntp,
                &ett_ntp_flags,
@@ -1925,7 +3679,11 @@ proto_register_ntp(void)
                &ett_ntpctrl_data,
                &ett_ntpctrl_item,
                &ett_ntppriv_auth_seq,
-               &ett_monlist_item,
+               &ett_mode7_item,
+               &ett_ntppriv_peer_list_flags,
+               &ett_ntppriv_config_flags,
+               &ett_ntppriv_sys_flag_flags,
+               &ett_ntppriv_reset_stats_flags,
                &ett_ntp_authenticator
        };