+ struct if_poll_params {
+ u_int16_t poll_req;
+ u_int16_t poll_update; /* link update */
+ u_int32_t poll_flags;
+#define IF_POLLF_READY 0x1 /* poll thread is ready */
+#define IF_POLLF_RUNNING 0x2 /* poll thread is running/active */
+ struct timespec poll_cycle; /* poll interval */
+ struct thread *poll_thread;
+
+ ifnet_model_t poll_mode; /* current mode */
+ struct pktcntr poll_tstats; /* incremental polling statistics */
+ struct if_rxpoll_stats poll_pstats; /* polling statistics */
+ struct pktcntr poll_sstats; /* packets and bytes per sampling */
+ struct timespec poll_mode_holdtime; /* mode holdtime in nsec */
+ struct timespec poll_mode_lasttime; /* last mode change time in nsec */
+ struct timespec poll_sample_holdtime; /* sampling holdtime in nsec */
+ struct timespec poll_sample_lasttime; /* last sampling time in nsec */
+ struct timespec poll_dbg_lasttime; /* last debug message time in nsec */
+ } rxpoll_params;
+#define if_poll_req rxpoll_params.poll_req
+#define if_poll_update rxpoll_params.poll_update
+#define if_poll_flags rxpoll_params.poll_flags
+#define if_poll_cycle rxpoll_params.poll_cycle
+#define if_poll_thread rxpoll_params.poll_thread
+#define if_poll_mode rxpoll_params.poll_mode
+#define if_poll_tstats rxpoll_params.poll_tstats
+#define if_poll_sstats rxpoll_params.poll_sstats
+#define if_poll_pstats rxpoll_params.poll_pstats
+
+#define if_poll_mode_holdtime rxpoll_params.poll_mode_holdtime
+#define if_poll_mode_lasttime rxpoll_params.poll_mode_lasttime
+#define if_poll_sample_holdtime rxpoll_params.poll_sample_holdtime
+#define if_poll_sample_lasttime rxpoll_params.poll_sample_lasttime
+#define if_poll_dbg_lasttime rxpoll_params.poll_dbg_lasttime
+
+#define if_rxpoll_offreq rxpoll_params.poll_pstats.ifi_poll_off_req
+#define if_rxpoll_offerr rxpoll_params.poll_pstats.ifi_poll_off_err
+#define if_rxpoll_onreq rxpoll_params.poll_pstats.ifi_poll_on_req
+#define if_rxpoll_onerr rxpoll_params.poll_pstats.ifi_poll_on_err
+#define if_rxpoll_wavg rxpoll_params.poll_pstats.ifi_poll_wakeups_avg
+#define if_rxpoll_wlowat rxpoll_params.poll_pstats.ifi_poll_wakeups_lowat
+#define if_rxpoll_whiwat rxpoll_params.poll_pstats.ifi_poll_wakeups_hiwat
+#define if_rxpoll_pavg rxpoll_params.poll_pstats.ifi_poll_packets_avg
+#define if_rxpoll_pmin rxpoll_params.poll_pstats.ifi_poll_packets_min
+#define if_rxpoll_pmax rxpoll_params.poll_pstats.ifi_poll_packets_max
+#define if_rxpoll_plowat rxpoll_params.poll_pstats.ifi_poll_packets_lowat
+#define if_rxpoll_phiwat rxpoll_params.poll_pstats.ifi_poll_packets_hiwat
+#define if_rxpoll_bavg rxpoll_params.poll_pstats.ifi_poll_bytes_avg
+#define if_rxpoll_bmin rxpoll_params.poll_pstats.ifi_poll_bytes_min
+#define if_rxpoll_bmax rxpoll_params.poll_pstats.ifi_poll_bytes_max
+#define if_rxpoll_blowat rxpoll_params.poll_pstats.ifi_poll_bytes_lowat
+#define if_rxpoll_bhiwat rxpoll_params.poll_pstats.ifi_poll_bytes_hiwat
+#define if_rxpoll_plim rxpoll_params.poll_pstats.ifi_poll_packets_limit
+#define if_rxpoll_ival rxpoll_params.poll_pstats.ifi_poll_interval_time