version 1.3, 2022/07/05 21:58:48
|
version 1.10, 2022/08/18 13:02:13
|
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 |
Line 164 extern struct fwsync_context fws_ctx;
|
Line 189 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_sndpkt; | extern fwsync_sndpkt_t fwsync_sndpkt, fwsync_updpkt, fwsync_natpkt; |
|
|
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); |