MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pfr_create_kentry

Function pfr_create_kentry

freebsd/netpfil/pf/pf_table.c:789–816  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

787}
788
789static struct pfr_kentry *
790pfr_create_kentry(struct pfr_addr *ad, bool counters)
791{
792 struct pfr_kentry *ke;
793 counter_u64_t c;
794
795 ke = uma_zalloc(V_pfr_kentry_z, M_NOWAIT | M_ZERO);
796 if (ke == NULL)
797 return (NULL);
798
799 if (ad->pfra_af == AF_INET)
800 FILLIN_SIN(ke->pfrke_sa.sin, ad->pfra_ip4addr);
801 else if (ad->pfra_af == AF_INET6)
802 FILLIN_SIN6(ke->pfrke_sa.sin6, ad->pfra_ip6addr);
803 ke->pfrke_af = ad->pfra_af;
804 ke->pfrke_net = ad->pfra_net;
805 ke->pfrke_not = ad->pfra_not;
806 ke->pfrke_counters.pfrkc_tzero = 0;
807 if (counters) {
808 c = uma_zalloc_pcpu(V_pfr_kentry_counter_z, M_NOWAIT | M_ZERO);
809 if (c == NULL) {
810 pfr_destroy_kentry(ke);
811 return (NULL);
812 }
813 ke->pfrke_counters.pfrkc_counters = c;
814 }
815 return (ke);
816}
817
818static void
819pfr_destroy_kentries(struct pfr_kentryworkq *workq)

Callers 4

pfr_add_addrsFunction · 0.85
pfr_set_addrsFunction · 0.85
pfr_insert_kentryFunction · 0.85
pfr_ina_defineFunction · 0.85

Calls 3

pfr_destroy_kentryFunction · 0.85
uma_zallocFunction · 0.50
uma_zalloc_pcpuFunction · 0.50

Tested by

no test coverage detected