ip_dn_private.h (302408) | ip_dn_private.h (325730) |
---|---|
1/*- 2 * Copyright (c) 2010 Luigi Rizzo, Riccardo Panicucci, Universita` di Pisa 3 * All rights reserved 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 13 unchanged lines hidden (view full) --- 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27/* 28 * internal dummynet APIs. 29 * | 1/*- 2 * Copyright (c) 2010 Luigi Rizzo, Riccardo Panicucci, Universita` di Pisa 3 * All rights reserved 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 13 unchanged lines hidden (view full) --- 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27/* 28 * internal dummynet APIs. 29 * |
30 * $FreeBSD: stable/11/sys/netpfil/ipfw/ip_dn_private.h 300779 2016-05-26 21:40:13Z truckman $ | 30 * $FreeBSD: stable/11/sys/netpfil/ipfw/ip_dn_private.h 325730 2017-11-12 01:26:43Z truckman $ |
31 */ 32 33#ifndef _IP_DN_PRIVATE_H 34#define _IP_DN_PRIVATE_H 35 36/* debugging support 37 * use ND() to remove debugging, D() to print a line, 38 * DX(level, ...) to print above a certain level --- 323 unchanged lines hidden (view full) --- 362 DN_DETACH = 0x0010, 363 DN_ACTIVE = 0x0020, /* object is in evheap */ 364 DN_F_DLINE = 0x0040, /* object is a delay line */ 365 DN_DEL_SAFE = 0x0080, /* delete a queue only if no longer needed 366 * by scheduler */ 367 DN_QHT_IS_Q = 0x0100, /* in flowset, qht is a single queue */ 368}; 369 | 31 */ 32 33#ifndef _IP_DN_PRIVATE_H 34#define _IP_DN_PRIVATE_H 35 36/* debugging support 37 * use ND() to remove debugging, D() to print a line, 38 * DX(level, ...) to print above a certain level --- 323 unchanged lines hidden (view full) --- 362 DN_DETACH = 0x0010, 363 DN_ACTIVE = 0x0020, /* object is in evheap */ 364 DN_F_DLINE = 0x0040, /* object is a delay line */ 365 DN_DEL_SAFE = 0x0080, /* delete a queue only if no longer needed 366 * by scheduler */ 367 DN_QHT_IS_Q = 0x0100, /* in flowset, qht is a single queue */ 368}; 369 |
370/* 371 * Packets processed by dummynet have an mbuf tag associated with 372 * them that carries their dummynet state. 373 * Outside dummynet, only the 'rule' field is relevant, and it must 374 * be at the beginning of the structure. 375 */ 376struct dn_pkt_tag { 377 struct ipfw_rule_ref rule; /* matching rule */ 378 379 /* second part, dummynet specific */ 380 int dn_dir; /* action when packet comes out.*/ 381 /* see ip_fw_private.h */ 382 uint64_t output_time; /* when the pkt is due for delivery*/ 383 struct ifnet *ifp; /* interface, for ip_output */ 384 struct _ip6dn_args ip6opt; /* XXX ipv6 options */ 385 uint16_t iphdr_off; /* IP header offset for mtodo() */ 386}; 387 |
|
370extern struct dn_parms dn_cfg; 371//VNET_DECLARE(struct dn_parms, _base_dn_cfg); 372//#define dn_cfg VNET(_base_dn_cfg) 373 374int dummynet_io(struct mbuf **, int , struct ip_fw_args *); 375void dummynet_task(void *context, int pending); 376void dn_reschedule(void); | 388extern struct dn_parms dn_cfg; 389//VNET_DECLARE(struct dn_parms, _base_dn_cfg); 390//#define dn_cfg VNET(_base_dn_cfg) 391 392int dummynet_io(struct mbuf **, int , struct ip_fw_args *); 393void dummynet_task(void *context, int pending); 394void dn_reschedule(void); |
395struct dn_pkt_tag * dn_tag_get(struct mbuf *m); |
|
377 378struct dn_queue *ipdn_q_find(struct dn_fsk *, struct dn_sch_inst *, 379 struct ipfw_flow_id *); 380struct dn_sch_inst *ipdn_si_find(struct dn_schk *, struct ipfw_flow_id *); 381 382/* 383 * copy_range is a template for requests for ranges of pipes/queues/scheds. 384 * The number of ranges is variable and can be derived by o.len. --- 79 unchanged lines hidden --- | 396 397struct dn_queue *ipdn_q_find(struct dn_fsk *, struct dn_sch_inst *, 398 struct ipfw_flow_id *); 399struct dn_sch_inst *ipdn_si_find(struct dn_schk *, struct ipfw_flow_id *); 400 401/* 402 * copy_range is a template for requests for ranges of pipes/queues/scheds. 403 * The number of ranges is variable and can be derived by o.len. --- 79 unchanged lines hidden --- |