Diff for /fwsync/driver/fwsync.h between versions 1.3 and 1.11

version 1.3, 2022/07/05 21:58:48 version 1.11, 2022/08/26 14:47:36
Line 1 Line 1
/*************************************************************************/*-
* (C) 2022 CloudSigma AG - Sofia/Bulgaria * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
*  by Michael Pounov <misho@elwix.org> *
**************************************************************************/ * Copyright (c) 2022 Michael Pounov <misho@elwix.org>, CloudSigma AG
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
 #ifndef __FWSYNC_H  #ifndef __FWSYNC_H
 #define __FWSYNC_H  #define __FWSYNC_H
   
Line 24 Line 46
 #include <sys/priority.h>  #include <sys/priority.h>
 #include <sys/taskqueue.h>  #include <sys/taskqueue.h>
 #include <sys/queue.h>  #include <sys/queue.h>
   #include <sys/tree.h>
 #include <sys/mutex.h>  #include <sys/mutex.h>
 #include <sys/uio.h>  #include <sys/uio.h>
 #include <sys/poll.h>  #include <sys/poll.h>
   
   #include <netinet/libalias/alias.h>
   #include <netinet/libalias/alias_local.h>
   #include <netinet/libalias/alias_db.h>
   
 #include <net/if.h>  #include <net/if.h>
 #include <net/if_var.h>  #include <net/if_var.h>
 #include <net/if_dl.h>  #include <net/if_dl.h>
Line 34 Line 62
 #include <netinet/ip.h>  #include <netinet/ip.h>
 #include <netinet/ip_var.h>  #include <netinet/ip_var.h>
 #include <netinet/udp.h>  #include <netinet/udp.h>
   
 #define IPFW_INTERNAL  
   
 #include <netinet/ip_fw.h>  #include <netinet/ip_fw.h>
   
 #include <netpfil/ipfw/ip_fw_private.h>  #include <netpfil/ipfw/ip_fw_private.h>
   
 #include "fwsync_proto.h"  #include "fwsync_proto.h"
 #include "fwsync_workers.h"  #include "fwsync_workers.h"
 #include "fwsync_utils.h"  
   
   
 #define IFT_FWSYNC      0xfc  #define IFT_FWSYNC      0xfc
   #define IFT_FWSYNC_ACCT 0xfd
   
 #define DRV_NAME        "fwsync"  #define DRV_NAME        "fwsync"
 #define DRV_VERSION     1  #define DRV_VERSION     1
Line 122  struct fwsync_context { Line 148  struct fwsync_context {
 #define CTX_COLLECTOR_1_ONLINE  0x80  #define CTX_COLLECTOR_1_ONLINE  0x80
 #define CTX_COLLECTOR_2_ONLINE  0x100  #define CTX_COLLECTOR_2_ONLINE  0x100
   
 #if 0  
 #define DRETFLUSH       _IOW('D', 1, u_char)  
 #define DRETADDFILT     _IOW('D', 2, struct dret_filter)  
 #define DRETDELFILT     _IOW('D', 3, struct dret_filter)  
 #define DRETACCTFLUSH   _IOW('D', 4, u_char)  
 #define DRETACCTDEL     _IOW('D', 5, struct tagAccount)  
 #define DRETACCTGET     _IOWR('D', 6, struct tagAccount)  
   
 #define DRETDIROFF      0  
 #define DRETDIRIN       1  
 #define DRETDIROUT      2  
 #define DRETDIRANY      3  
 #define DRETACCT        4  
   
 struct dret_filter {  
         u_char          filt_dir;  
         u_int           filt_proto[8];  
         char            filt_iface[IFNAMSIZ];  
         netaddr_t       filt_net;  
 };  
 #define FP_MASK(n)      ((u_int) 1 << ((n) % 32))  
 #define FP_ISSET(n, a)  ((a)[(n) / 32] & FP_MASK(n))  
 #define FP_CLR(n, a)    ((a)[(n) / 32] &= ~FP_MASK(n))  
 #define FP_SET(n, a)    ((a)[(n) / 32] |= FP_MASK(n))  
 #define FP_ZERO(a)      do { int _i = 8; \  
                                 while (_i > 0) \  
                                         (a)[--_i] = 0; \  
                         } while (0)  
 #endif  
   
 struct fws_sndpkt {  struct fws_sndpkt {
         struct fws_proto        sp_proto;          struct fws_proto        sp_proto;
         TAILQ_ENTRY(fws_sndpkt) sp_next;          TAILQ_ENTRY(fws_sndpkt) sp_next;
Line 159  struct fws_sndpkt { Line 155  struct fws_sndpkt {
   
 typedef TAILQ_HEAD(, fws_sndpkt) fwsync_sndpkt_t;  typedef TAILQ_HEAD(, fws_sndpkt) fwsync_sndpkt_t;
   
   struct fws_acct {
           uint64_t        states[2];
           uint64_t        aliases[2];
   };
   
 extern int fwsync_debug;  extern int fwsync_debug;
 extern struct fwsync_context fws_ctx;  extern struct fwsync_context fws_ctx;
 extern struct cfg_sync fws_cfg;  extern struct cfg_sync fws_cfg;
 extern struct task fws_sndpkt_task;  extern struct task fws_sndpkt_task;
 extern struct taskqueue *fws_tq;  extern struct taskqueue *fws_tq;
extern struct mtx fws_mtx_c, fws_mtx_e;extern struct callout fws_co;
 extern struct mtx fws_mtx_c, fws_mtx_e, fws_mtx_u, fws_mtx_n;
 extern struct mbuf *fws_sndpkt;  extern struct mbuf *fws_sndpkt;
extern fwsync_sndpkt_t fwsync_sndpktextern fwsync_sndpkt_t fwsync_sndpkt, fwsync_updpkt, fwsync_natpkt; 
 extern struct fws_acct fws_acct;
   
 int fwsync_cfg(struct ip_fw_chain *ch, ip_fw3_opheader *op3, struct sockopt_data *sd);  int fwsync_cfg(struct ip_fw_chain *ch, ip_fw3_opheader *op3, struct sockopt_data *sd);
 int fwsync_destroy(struct ip_fw_chain *ch, ip_fw3_opheader *op3, struct sockopt_data *sd);  int fwsync_destroy(struct ip_fw_chain *ch, ip_fw3_opheader *op3, struct sockopt_data *sd);

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


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