| 1858 | } |
| 1859 | |
| 1860 | static void |
| 1861 | pfr_clstats_ktable(struct pfr_ktable *kt, long tzero, int recurse) |
| 1862 | { |
| 1863 | struct pfr_kentryworkq addrq; |
| 1864 | int pfr_dir, pfr_op; |
| 1865 | |
| 1866 | if (recurse) { |
| 1867 | pfr_enqueue_addrs(kt, &addrq, NULL, 0); |
| 1868 | pfr_clstats_kentries(kt, &addrq, tzero, 0); |
| 1869 | } |
| 1870 | for (pfr_dir = 0; pfr_dir < PFR_DIR_MAX; pfr_dir ++) { |
| 1871 | for (pfr_op = 0; pfr_op < PFR_OP_TABLE_MAX; pfr_op ++) { |
| 1872 | counter_u64_zero(kt->pfrkt_packets[pfr_dir][pfr_op]); |
| 1873 | counter_u64_zero(kt->pfrkt_bytes[pfr_dir][pfr_op]); |
| 1874 | } |
| 1875 | } |
| 1876 | counter_u64_zero(kt->pfrkt_match); |
| 1877 | counter_u64_zero(kt->pfrkt_nomatch); |
| 1878 | kt->pfrkt_tzero = tzero; |
| 1879 | } |
| 1880 | |
| 1881 | static struct pfr_ktable * |
| 1882 | pfr_create_ktable(struct pfr_table *tbl, long tzero, int attachruleset) |
no test coverage detected