History log of /freebsd-current/sys/netgraph/ng_source.c
Revision Date Author Comments
# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 3d0d5b21 23-Jan-2023 Justin Hibbits <jhibbits@FreeBSD.org>

IfAPI: Explicitly include <net/if_private.h> in netstack

Summary:
In preparation of making if_t completely opaque outside of the netstack,
explicitly include the header. <net/if_var.h> will stop including the
header in the future.

Sponsored by: Juniper Networks, Inc.
Reviewed by: glebius, melifaro
Differential Revision: https://reviews.freebsd.org/D38200


# ebc61c86 28-Jan-2021 Lutz Donnerhacke <donner@FreeBSD.org>

netgraph/ng_source: Switch queuing framework

Change the queuing framework from ifq to mbufq.

Reported by: glebius
Reviewed by: glebius, kp
Approved by: kp (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D28407


# d7dd28bb 23-Jan-2021 Lutz Donnerhacke <donner@FreeBSD.org>

netgraph/ng_source: If queue is full, don't enqueue

Submitted by: nc
Reviewed by: donner, kp
Approved by: kp (mentor)
Differential Revision: https://reviews.freebsd.org/D23477


# 75e7ef74 17-Jan-2021 Lutz Donnerhacke <donner@FreeBSD.org>

netgraph/ng_source: Allow ng_source to inject into any netgraph network

PR: 240530
Reviewed by: kp
Approved by: kp (mentor)
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D21968


# f8edc373 26-Nov-2018 Eugene Grosbein <eugen@FreeBSD.org>

ng_source(4): correction after the change r340617

tv_usec has "long" type for all architecture in FreeBSD
and follows __LP64__. However, this is not true for tv_sec
that has "time_t" type.

Since r320347 that changed time_t from 32 to 64 bit integer
for 32 bit version of powerpc architecture, we have only single
i386 architecture having 32 bit time_t type.

Submitted by: jhb
MFC after: 1 week.


# d642b942 19-Nov-2018 Eugene Grosbein <eugen@FreeBSD.org>

Unbreak ng_source(4) for 64-bit platforms including amd64.


# 053359b7 29-Apr-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/netgraph: spelling fixes in comments.

No functional change.


# 155d72c4 15-Apr-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/net* : for pointers replace 0 with NULL.

Mostly cosmetical, no functional change.

Found with devel/coccinelle.


# eb1b1807 05-Dec-2012 Gleb Smirnoff <glebius@FreeBSD.org>

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags within sys.

Exceptions:

- sys/contrib not touched
- sys/mbuf.h edited manually


# c9b652e3 18-Oct-2012 Andre Oppermann <andre@FreeBSD.org>

Mechanically remove the last stray remains of spl* calls from net*/*.
They have been Noop's for a long time now.


# 5bc2249f 16-Apr-2012 Marko Zec <zec@FreeBSD.org>

#include <net/vnet.h> is no longer needed here.

Spotted by: Ed Maste
MFC after: 3 days.


# 674d86bf 18-Apr-2011 Gleb Smirnoff <glebius@FreeBSD.org>

Node constructor methods are supposed to be called in syscall
context always. Convert nodes to consistently use M_WAITOK flag
for memory allocation.

Reviewed by: julian


# 6bccea7c 21-Feb-2011 Rebecca Cran <brucec@FreeBSD.org>

Fix typos - remove duplicate "the".

PR: bin/154928
Submitted by: Eitan Adler <lists at eitanadler.com>
MFC after: 3 days


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# d11f4f5d 06-Jul-2010 Ed Maste <emaste@FreeBSD.org>

Remove email address that no longer exists.


# 530c0060 01-Aug-2009 Robert Watson <rwatson@FreeBSD.org>

Merge the remainder of kern_vimage.c and vimage.h into vnet.c and
vnet.h, we now use jails (rather than vimages) as the abstraction
for virtualization management, and what remained was specific to
virtual network stacks. Minor cleanups are done in the process,
and comments updated to reflect these changes.

Reviewed by: bz
Approved by: re (vimage blanket)


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 3ac12c59 21-Sep-2008 Marko Zec <zec@FreeBSD.org>

Fix error message content.

Approved by: julian (mentor)
MFC after: 3 days


# 603724d3 17-Aug-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

Commit step 1 of the vimage project, (network stack)
virtualization work done by Marko Zec (zec@).

This is the first in a series of commits over the course
of the next few weeks.

Mark all uses of global variables to be virtualized
with a V_ prefix.
Use macros to map them back to their global names for
now, so this is a NOP change only.

We hope to have caught at least 85-90% of what is needed
so we do not invalidate a lot of outstanding patches again.

Obtained from: //depot/projects/vimage-commit2/...
Reviewed by: brooks, des, ed, mav, julian,
jamie, kris, rwatson, zec, ...
(various people I forgot, different versions)
md5 (with a bit of help)
Sponsored by: NLnet Foundation, The FreeBSD Foundation
X-MFC after: never
V_Commit_Message_Reviewed_By: more people than the patch


# ab2e868c 02-Mar-2007 Ed Maste <emaste@FreeBSD.org>

Ensure message passed to "settimestamp" and "setcounter" is the right
length. Use NULL instead of 0.

Submitted by: glebius, ru


# 577421eb 01-Mar-2007 Ed Maste <emaste@FreeBSD.org>

Add "setcounter" and "getcounter" messages, providing the the ability
to embed up to four counters in outgoing packets. The message specifies
the offset at which the counter should be inserted as well as the
parameters of the counter.

Example usage:

ngctl msg src0: setcounter \
'{ index=0 offset=0x40 flags=1 width=4 increment=1 max_val=12345 }'

Sponsored by: Sandvine Incorporated


# 5f87dd69 01-Mar-2007 Ed Maste <emaste@FreeBSD.org>

Add "settimestamp" and "gettimestamp" messages, providing the the ability
to embed a timestamp (struct timeval) in outgoing packets. The message
specifies the offset at which the timestamp should be inserted.

NG_SOURCE(4) gives an example usage that queues an ICMP packet. Using that
example, the following command will insert a timestamp in the ICMP's data
payload:

ngctl msg src0: settimestamp '{ offset=0x2a flags=1 }'

Sponsored by: Sandvine Incorporated


# 205aefa3 23-Jan-2006 Gleb Smirnoff <glebius@FreeBSD.org>

Simplify ng_source_send() removing temporary queue and merging two
cycles into one.


# 72235857 23-Dec-2005 Gleb Smirnoff <glebius@FreeBSD.org>

Implement an upper limit for packets per second sent by node.


# d8f5d037 05-Apr-2005 Gleb Smirnoff <glebius@FreeBSD.org>

Major overhaul and cleanup of ng_source node.

Functional changes:
- Cut struct source_hookinfo. Just use hook_p pointer.
- Remove "start_now" command. "start" command now requires number of
packets to send as argument. "start" command actually starts sending.
Move the code that actually starts sending from ng_source_rcvmsg()
to ng_source_start().
- Remove check for NG_SOURCE_ACTIVE in ng_source_stop(). We can be called
with flag cleared (see begin of ng_source_intr()).
- If NG_SEND_DATA_ONLY() use log(LOG_DEBUG) instead of printf(). Otherwise
we will *flood* console.
- Add ng_connect_t method, which sends NGM_ETHER_GET_IFNAME command
to "output" hook. Cut ng_source_request_output_ifp(). Refactor
ng_source_store_output_ifp() to use ifunit() and don't muck through
interface list.
- Add "setiface" command, which gives ability to configure interface
in case when ng_source_connect() failed. This happens, when we are not
connected directly to ng_ether(4) node.
- Remove KASSERTs, which can never fire.
- Don't check for M_PKTHDR in rcvdata method. netgraph(4) does this
for us.

Style:
- Assign sc_p = NG_NODE_PRIVATE(node) in declaration, to be
consistent with style of other nodes.
- Sort variables.
- u_intXX -> uintXX.
- Dots at ends of comments.

Sponsored by: Rambler


# 2b0ffc02 10-Mar-2005 Bosko Milekic <bmilekic@FreeBSD.org>

Make some basic grammar and style fixes to ng_source.c and ng_source.h.
The latter was particularly violated by someone's editor in the past, due
to an effect I like to call "premature linewrapping."


# 0572dfac 12-Feb-2005 Ruslan Ermilov <ru@FreeBSD.org>

Fallout from the ALTQ import.


# c398230b 06-Jan-2005 Warner Losh <imp@FreeBSD.org>

/* -> /*- for license, minor formatting changes


# f9d9e1b4 01-Dec-2004 Gleb Smirnoff <glebius@FreeBSD.org>

Mechanically rename s/ng_timeout/ng_callout/g, s/ng_untimeout/ng_uncallout/g.
This is done to keep both versions in RELENG_5 and support both APIs.

Reviewed by: scottl
Approved by: julian (mentor), implicitly


# 30bef41b 02-Nov-2004 Gleb Smirnoff <glebius@FreeBSD.org>

- Make ng_timeout() to use callout() interface instead of timeout().
- Remove callout-hacking from ng_untimeout().

Approved by: julian (mentor)
MFC after: 1 month


# d312eaf5 02-Nov-2004 Gleb Smirnoff <glebius@FreeBSD.org>

Fix a harmless error in order of ng_timeout() arguments.

Approved by: julian (mentor)


# be4252b3 20-Jul-2004 Julian Elischer <julian@FreeBSD.org>

Slight cosmetic changes.
Also introduce a macro to be called by persistent nodes to signal their
persistence during shutdown to hide this mechanism from the node author.

Make node flags have a consistent style in naming.

Document the change.


# f8aae777 28-May-2004 Julian Elischer <julian@FreeBSD.org>

Switch to using C99 sparse initialisers for the type methods array.
Should make no binary difference.

Submitted by: Gleb Smirnoff <glebius@cell.sick.ru>
Reviewed by: Harti Brandt <harti@freebsd.org>
MFC after: 1 week


# a1adb510 30-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Use the official ng_timeout function to trigger sending. This means,
that we can get rid of of all the spl*() calls, because ng_timeout
handles the locking issues.


# 4e0dea9a 27-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Don't confuse NULL and 0, use 0 where an integer is expected.


# 76bd5857 27-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Style: add __FBSDID, relocate some { that were on the wrong line,
correct some indendation, change __FUNCTION__ to __func__ and remove
a local KASSERT definition.


# f5d15522 26-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Make ng_source to work with non-ethernet interfaces. We do this by
introducing a START_NOW command. This command does not send
and GET_IFINDEX message downstream (to wait for the response from
the ETHERNET node), but directly starts the sending process. This allows
one to generate traffic as input for any hook on any node.


# 2cafef3e 26-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Declare a function to silence a warning.


# 81a4ef81 26-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Should use the non-locking versions of the ifqueue macros to
fiddle around with private queues, because their mutex is not
needed. All this processing should be protected by the netgraph
locking.


# b1b70498 26-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

Replace a call to bzero() with an M_ZERO flag. Replace the MALLOC() with
malloc().


# 4321c507 26-Jan-2004 Hartmut Brandt <harti@FreeBSD.org>

The version in the type description must be the ABI version, not
the netgraph version.

Correct the return type of a function: it wants to return an error
code, so it cannot be void.


# a163d034 18-Feb-2003 Warner Losh <imp@FreeBSD.org>

Back out M_* changes, per decision of the TRB.

Approved by: trb


# 44956c98 21-Jan-2003 Alfred Perlstein <alfred@FreeBSD.org>

Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.


# b30a244c 21-Dec-2002 Jeffrey Hsu <hsu@FreeBSD.org>

SMP locking for ifnet list.


# 86fea6be 19-Dec-2002 Bosko Milekic <bmilekic@FreeBSD.org>

o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and
the mbuf allocator flags {M_TRYWAIT, M_DONTWAIT}.
o Fix a bpf_compat issue where malloc() was defined to just call
bpf_alloc() and pass the 'canwait' flag(s) along. It's been changed
to call bpf_alloc() but pass the corresponding M_TRYWAIT or M_DONTWAIT
flag (and only one of those two).

Submitted by: Hiten Pandya <hiten@unixdaemons.com> (hiten->commit_count++)


# b655e33d 04-Nov-2002 Julian Elischer <julian@FreeBSD.org>

Slight redesign for fitting in with -current.


# 5968e29e 01-Nov-2002 Julian Elischer <julian@FreeBSD.org>

The easy part of converting the ng_source node to -current.
More to come.. does not compile (deliberatly.. logic broken)


# 4b52f283 01-Nov-2002 Julian Elischer <julian@FreeBSD.org>

Whitespace fixes


# 585ff168 31-Oct-2002 Julian Elischer <julian@FreeBSD.org>

Add the netgraph 'source' module.
This is NOT YET CONVERTED TO -current.
This node is a source for preprogrammed packets at a known rate for testing.

I will convert it to -current "in place" but will MFC teh original
pre-conversion variant as that is what is originally submitted.
Man page my me, info from Dave's README.

Submitted by: Dave Chapeskie <dchapeskie@SANDVINE.com>
Obtained from: Sandvine inc.
MFC after: 1 week