Diff for /fwsync/driver/fwsync_mod.c between versions 1.3 and 1.6

version 1.3, 2022/07/11 12:58:58 version 1.6, 2022/08/10 00:03:50
Line 25  struct cfg_sync fws_cfg; Line 25  struct cfg_sync fws_cfg;
   
 struct task fws_sndpkt_task;  struct task fws_sndpkt_task;
 struct taskqueue *fws_tq;  struct taskqueue *fws_tq;
struct mtx fws_mtx_c, fws_mtx_e;struct callout fws_co;
fwsync_sndpkt_t fwsync_sndpktstruct mtx fws_mtx_c, fws_mtx_e, fws_mtx_u;
 fwsync_sndpkt_t fwsync_sndpkt, fwsync_updpkt; 
   
 SYSCTL_NODE(_net_inet_ip, IFT_FWSYNC, fwsync, CTLFLAG_RW, 0, "IPFW Sync - Sync firewall states");  SYSCTL_NODE(_net_inet_ip, IFT_FWSYNC, fwsync, CTLFLAG_RW, 0, "IPFW Sync - Sync firewall states");
 SYSCTL_INT(_net_inet_ip_fwsync, OID_AUTO, debug, CTLFLAG_RW, &fwsync_debug, 0, "Debug driver");  SYSCTL_INT(_net_inet_ip_fwsync, OID_AUTO, debug, CTLFLAG_RW, &fwsync_debug, 0, "Debug driver");
Line 49  fws_fini(void *arg) Line 50  fws_fini(void *arg)
   
         IPFW_DEL_SOPT_HANDLER(1, soc);          IPFW_DEL_SOPT_HANDLER(1, soc);
   
        if (fws_tq)        callout_drain(&fws_co);
 
         if (fws_tq) {
                 taskqueue_drain_all(fws_tq);
                 taskqueue_free(fws_tq);                  taskqueue_free(fws_tq);
           }
   
           mtx_lock(&fws_mtx_u);
           while (!TAILQ_EMPTY(&fwsync_updpkt)) {
                   p = TAILQ_FIRST(&fwsync_updpkt);
                   TAILQ_REMOVE(&fwsync_updpkt, p, sp_next);
                   free(p, M_FWSYNC);
           }
           mtx_unlock(&fws_mtx_u);
   
         mtx_lock(&fws_mtx_c);          mtx_lock(&fws_mtx_c);
         while (!TAILQ_EMPTY(&fwsync_sndpkt)) {          while (!TAILQ_EMPTY(&fwsync_sndpkt)) {
                 p = TAILQ_FIRST(&fwsync_sndpkt);                  p = TAILQ_FIRST(&fwsync_sndpkt);
Line 62  fws_fini(void *arg) Line 75  fws_fini(void *arg)
   
         mtx_destroy(&fws_mtx_c);          mtx_destroy(&fws_mtx_c);
         mtx_destroy(&fws_mtx_e);          mtx_destroy(&fws_mtx_e);
           mtx_destroy(&fws_mtx_u);
   
         fwsync_hooked = 0;          fwsync_hooked = 0;
   
Line 94  fws_init(void *arg) Line 108  fws_init(void *arg)
         memset(&fws_ctx, 0, sizeof fws_ctx);          memset(&fws_ctx, 0, sizeof fws_ctx);
   
         TAILQ_INIT(&fwsync_sndpkt);          TAILQ_INIT(&fwsync_sndpkt);
           TAILQ_INIT(&fwsync_updpkt);
   
         /* mutexes */          /* mutexes */
           mtx_init(&fws_mtx_u, "fwsync mtx update", NULL, MTX_DEF);
         mtx_init(&fws_mtx_e, "fwsync mtx edge", NULL, MTX_DEF);          mtx_init(&fws_mtx_e, "fwsync mtx edge", NULL, MTX_DEF);
         mtx_init(&fws_mtx_c, "fwsync mtx collector", NULL, MTX_DEF);          mtx_init(&fws_mtx_c, "fwsync mtx collector", NULL, MTX_DEF);
   
         /* taskqueue */          /* taskqueue */
         TASK_INIT(&fws_sndpkt_task, 0, fwsync_sndpkt_handler, &fwsync_sndpkt);  
   
         fws_tq = taskqueue_create("fwsync_tq", M_NOWAIT, taskqueue_thread_enqueue, &fws_tq);          fws_tq = taskqueue_create("fwsync_tq", M_NOWAIT, taskqueue_thread_enqueue, &fws_tq);
         if (!fws_tq) {          if (!fws_tq) {
                 printf("Failed to allocate fwsync task queue\n");                  printf("Failed to allocate fwsync task queue\n");
Line 111  fws_init(void *arg) Line 125  fws_init(void *arg)
         } else          } else
                 taskqueue_start_threads(&fws_tq, 1, PI_NET, "fwsync tq");                  taskqueue_start_threads(&fws_tq, 1, PI_NET, "fwsync tq");
   
           TASK_INIT(&fws_sndpkt_task, 0, fwsync_sndpkt_handler, &fwsync_sndpkt);
   
           /* callout */
   
           callout_init_mtx(&fws_co, &fws_mtx_e, 0);
   
         /* sysctl context */          /* sysctl context */
         sysctl_ctx_init(&fwsync_sysctl_ctx);          sysctl_ctx_init(&fwsync_sysctl_ctx);
   
Line 155  static moduledata_t fwsync_mod = { Line 175  static moduledata_t fwsync_mod = {
 };  };
   
 DECLARE_MODULE(ipfw_sync, fwsync_mod, SI_SUB_PROTO_FIREWALL, SI_ORDER_ANY);  DECLARE_MODULE(ipfw_sync, fwsync_mod, SI_SUB_PROTO_FIREWALL, SI_ORDER_ANY);
   MODULE_DEPEND(ipfw_sync, libalias, 1, 1, 1);
 MODULE_DEPEND(ipfw_sync, ipfw, 3, 3, 3);  MODULE_DEPEND(ipfw_sync, ipfw, 3, 3, 3);
 MODULE_VERSION(ipfw_sync, DRV_VERSION);  MODULE_VERSION(ipfw_sync, DRV_VERSION);
   

Removed from v.1.3  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>