kernel - Major bridging functionality completed
[dragonfly.git] / sys / net / if_var.h
index 3334f05..6cd1c82 100644 (file)
@@ -88,7 +88,7 @@ struct        ifaddr_container;
 struct ifaddr;
 struct lwkt_port;
 struct lwkt_msg;
-struct netmsg;
+union  netmsg;
 struct pktinfo;
 struct ifpoll_info;
 
@@ -273,7 +273,7 @@ struct ifnet {
        struct lwkt_serialize *if_serializer;   /* serializer or MP lock */
        struct lwkt_serialize if_default_serializer; /* if not supplied */
        int     if_cpuid;
-       struct netmsg *if_start_nmsg; /* percpu messages to schedule if_start */
+       struct netmsg_base *if_start_nmsg; /* percpu msgs to sched if_start */
        void    *if_pf_kif; /* pf interface abstraction */
        union {
                void *carp_s;           /* carp structure (used by !carp ifs) */
@@ -717,6 +717,10 @@ ifa_forwardmsg(struct lwkt_msg *_lmsg, int _nextcpu)
        ifnet_forwardmsg(_lmsg, _nextcpu);
 }
 
+#define REINPUT_KEEPRCVIF      0x0001  /* ether_reinput_oncpu() */
+#define REINPUT_RUNBPF                 0x0002  /* ether_reinput_oncpu() */
+
+
 extern struct ifnethead ifnet;
 extern struct  ifnet   **ifindex2ifnet;
 extern int ifqmaxlen;
@@ -735,6 +739,7 @@ void        ether_input_chain_init(struct mbuf_chain *);
 void   ether_input_dispatch(struct mbuf_chain *);
 int    ether_output_frame(struct ifnet *, struct mbuf *);
 int    ether_ioctl(struct ifnet *, int, caddr_t);
+struct ifnet *ether_bridge_interface(struct ifnet *ifp);
 uint32_t       ether_crc32_le(const uint8_t *, size_t);
 uint32_t       ether_crc32_be(const uint8_t *, size_t);