Commit Graph

370 Commits

Author SHA1 Message Date
dyoung
3ebe24aa36 Apply netmasks to !(IFF_BROADCAST|IFF_POINTOPOINT) interfaces as
well as to IFF_BROADCAST interfaces.  Fixes the bug reported by
Markus W Kilbinger,

	ifconfig stf0 inet6 2002:xxxx:76ec:0001::1 prefixlen 16 alias

results in the wrong configuration,

	stf0: flags=1<UP> mtu 1280
		inet6 2002:xxxx:76ec:1::1 prefixlen 64
2008-05-16 20:57:42 +00:00
dyoung
4a04a80d10 The key 'vlantag' activates the 'vlanif' keyword, not the key
'vlan'.  Should fix this bug reported by Pierre Pronchery,

# ifconfig vlan0 vlan 1 vlanif hme0
ifconfig: SIOCAIFADDR: Address family not supported by protocol family
2008-05-16 20:53:35 +00:00
dyoung
76766729c4 Use an AF_LINK socket to add/delete/get link-layer addresses. 2008-05-13 18:10:17 +00:00
dyoung
3361a66d0a Per discussion at
<http://mail-index.netbsd.org/tech-net/2008/04/08/msg000371.html>,
let us add, delete, and activate link-layer addresses with ifconfig:

# ifconfig sip0 link 02:00:00:00:00:01                   [add address]
# ifconfig sip0 link 02:00:00:00:00:02                   [add address]
# ifconfig sip0 link 02:00:00:00:00:02 active            [activate address]
# ifconfig sip0 link 02:00:00:00:00:01 delete            [remove address]
2008-05-12 22:06:13 +00:00
dyoung
af8202a3c2 Apply the right copyright notice. 2008-05-12 22:01:32 +00:00
dyoung
85a29f7ecc Fix link-layer address parsing. Add debug statements.
Cosmetic: fix copyright whitespace.
2008-05-12 21:54:51 +00:00
dyoung
8c56a7ef60 Cosmetic: fix copyright whitespace. 2008-05-12 21:53:32 +00:00
dyoung
cd86d94cd8 We cannot create an AF_LINK socket. If AF_LINK is requested, create
an AF_INET socket, instead.
2008-05-12 21:52:29 +00:00
dyoung
47bfdf8c0e Make prototype and definition of in_alias() agree: it's static. 2008-05-12 20:59:13 +00:00
dyoung
b312223d4e Retire in6_addreq and in6_ridreq, which we do not use in the
commit_address() regime.
2008-05-12 20:58:16 +00:00
dyoung
3f2ce08bf8 Initialize IPv6 addresses and ifreqs with more rigor. Fixes this
bug reported by Matthias Scheler,

# ifconfig sip0 inet6 fdb4:542d:dc11:ec20::1
ifconfig: SIOCAIFADDR_IN6: Invalid argument
# ifconfig sip0 inet6 fdb4:542d:dc11:ec20::1 prefixlen 64
2008-05-12 15:35:50 +00:00
dyoung
0f6386183c setifipdst() is gone, so delete the prototype. #include nothing
(XXX).
2008-05-12 00:40:40 +00:00
dyoung
4279a83897 Add code for parsing link-layer addresses of the form xx:xx:...:xx. 2008-05-12 00:39:18 +00:00
dyoung
d3c42f50ae Start to adapt the AppleTalk module to use commit_address(). 2008-05-11 23:28:40 +00:00
dyoung
ed29145620 Get rid of sec2str() altogether. 2008-05-11 23:27:32 +00:00
dyoung
50a22265be Don't export in_alias(). Pass in_alias() a more useful template.
Misc. cosmetic changes.  Delete dead code.  Treat the address
preference as int16_t, since that is its real type.
2008-05-11 23:25:46 +00:00
dyoung
42c94b7768 In in6_alias(), instead of repeating the memset()/estrlcpy()/sockaddr_in6
assignment-dance, copy creq to ifr6 before each ioctl().
2008-05-11 22:30:07 +00:00
dyoung
16f748ab9d Delete unused array sin6tab[]. Delete unnecessary casts. 2008-05-11 22:18:20 +00:00
dyoung
3df1d7792b Delete dead code in sec2str(). 2008-05-11 22:16:29 +00:00
dyoung
8ae5a779c6 Retire some code that in6_commit_address() replaces. 2008-05-11 22:12:04 +00:00
dyoung
503d41a97f Let the address family modules zero initialize their own ifreqs,
instead of zeroing them in commit_address().

Switch to in6_commit_address() from in6_getprefix() and in6_getaddr().

Temporarily add some debugging code to setia6eui64_impl().
2008-05-11 22:07:23 +00:00
dyoung
a00439c7f3 In address, integer, string parsers, gracefully handle a missing
token.
2008-05-09 20:48:59 +00:00
dyoung
19f3f9a2f3 Repair agr(4) syntax. Should fix PR bin/38600. 2008-05-09 20:45:09 +00:00
dyoung
de7ae11c56 Use the correct key. Spotted by NONAKA Kimihiro. 2008-05-09 04:46:50 +00:00
dyoung
44e2875450 Move IPv4/IPv6-specific code from commit_address() to in_commit_address()
and in6_commit_address().  Fixes the USE_INET6=no build.
2008-05-08 07:13:20 +00:00
dyoung
cbb2531719 Delete #if 0'd code. 2008-05-08 07:11:03 +00:00
dyoung
43545a233c Don't use -pedantic, it stops af_atalk.c and af_iso.c from building
if INET_ONLY is #defined.
2008-05-08 07:09:18 +00:00
dyoung
8c460289fe Factor out common code, creating direct_ioctl() and indirect_ioctl()
for the two most prevalent styles of ioctl(2) calls in ifconfig(8).
2008-05-07 23:55:06 +00:00
dyoung
db80154181 Remove CPPFLAGS that are redundant when WARNS=4. 2008-05-07 22:07:24 +00:00
dyoung
71b48a4b36 Move IPv6 syntax to af_inet6.c from ifconfig.c. Move IFKW() macro
from ifconfig.c to parse.h for reuse.
2008-05-07 21:29:27 +00:00
dyoung
8a08b505d5 Move ISO, AppleTalk, carp(4) syntax from ifconfig.c to af_iso.c,
af_atalk.c, carp.c, respectively.
2008-05-07 20:45:01 +00:00
dyoung
e3cf2a1157 Sprinkle 'static const' on keyword objects. 2008-05-07 20:12:31 +00:00
dyoung
48fa574a64 Move vlan(4) syntax from ifconfig.c into vlan.c. 2008-05-07 20:11:15 +00:00
dyoung
8bc06077c3 Move tunnel syntax into tunnel.c. Move net80211 'list' command
syntax into ieee80211.c.
2008-05-07 20:03:27 +00:00
dyoung
ad19851f11 Move net80211 and agr(4) syntax out of ifconfig.c and into ieee80211.c
and agr.c, respectively.
2008-05-07 19:55:24 +00:00
dyoung
e4942eb316 Interpret 'prefixlen 0' as the maximum prefix length, as ifconfig
has always done.
2008-05-07 18:17:42 +00:00
dyoung
ed7181ed99 Fix a bug that I introduced in rev 1.88, where the default IPv6
prefix length changed from 64 to 128.  While I am here, allow an
address to be given with prefix length /0, but interpret it as
/128.
2008-05-07 18:08:30 +00:00
yamt
2f1a30af0d agrsetport: fix a use of uninitialized variable. 2008-05-07 01:13:51 +00:00
dyoung
f32d909d6e Use the right key, "ifcaps" not "ifcap", in do_setifcaps(). assert()
that the object associated with that key is the right size.
2008-05-06 21:58:05 +00:00
dyoung
1c6c1fd531 Extract subroutine do_setifcaps() and fix the bug that uwe@ reported
in capabilities-setting.

Use prop_dictionary_util(3).

Rename the parser snpaoffset to parse_snpaoffset.
2008-05-06 21:20:05 +00:00
dyoung
502f5a16a5 Use prop_dictionary_util(3).
Re-use set80211() some more.
2008-05-06 21:18:17 +00:00
dyoung
fac0aeb0a0 Use prop_dictionary_util(3). 2008-05-06 21:13:20 +00:00
dyoung
4e8b81ea3e Use prop_dictionary_util(3). 2008-05-06 18:58:47 +00:00
dyoung
55927815b6 Use prop_dictionary_util(3). 2008-05-06 18:35:38 +00:00
dyoung
42acbb2b0d Fix syntax error in last. 2008-05-06 18:16:34 +00:00
dyoung
990c1a7873 Cosmetic: use return rc ? 0 : -1;
Make sure to release a prop_object_t that I am no longer using.
2008-05-06 18:09:50 +00:00
dyoung
a2e4fb3562 Use prop_dictionary_util(3) some more.
When we read interface flags and capabilities from the kernel, take
care not to record them in our current environment (env), but record
them in the output environment (oenv), instead.  This helps us get
interface capabilities and flags right.
2008-05-06 17:29:04 +00:00
dyoung
32cf2beed0 Rename in_addr_commit() to commit_address(), and refactor slightly
to support IPv6 as well as IPv4 (a work in progress).

Make the second argument of af_status() a bool instead of an int.

Exit early with an error if the operator specifies an unsupported
address family on the command line.  The change should help rc
scripts to detect that IPv6 support is missing from the kernel,
with 'ifconfig lo0 inet6'.

Start using prop_dictionary_util(3).
2008-05-06 16:15:17 +00:00
dyoung
e51773dc79 Add a license. 2008-05-06 16:09:18 +00:00
dyoung
40b61e5050 Add WARNS=4 and a dependency on ${LIBPROP}. 2008-05-06 16:07:00 +00:00
dyoung
8db3a2f0ba If the address family is not set, assume AF_APPLETALK. Exit
at_status() quietly if the address family is set, and it is not
set to AF_APPLETALK.
2008-05-06 15:02:49 +00:00
skrll
77ecd4421a Restore RCSId lost in 1.11 2008-05-06 08:16:12 +00:00
dyoung
c62cf792b0 Take out my CFLAGS settings for debugging. 2008-05-06 04:40:45 +00:00
dyoung
7b01455a0e Overhaul ifconfig. Use fewer global variables. Take a leap toward
improved modularity and extensibility.

In the new architecture, a directed graph of argument-matching
objects (match objects) expresses the set of feasible ifconfig
statements.  Match objects are labelled by subroutines that provide
the statement semantics.

Many IPv4, IPv6, 802.11, tunnel, and media configurations have been
tested.

AppleTalk, ISO, carp(4), agr(4), and vlan(4) configuration need
testing.
2008-05-06 04:33:42 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
dyoung
52440afe4e Don't cast memset(3) to void. Remove a needless cast to struct
in6_addr *.
2008-04-24 05:29:40 +00:00
dyoung
35eb8b696a Copy a const string to a temporary buffer instead of using __UNCONST().
Cosmetic: get rid of superflous curly braces and cast to (void *).
2008-04-22 17:18:11 +00:00
dyoung
d5063688b1 Delete some gratuitous casts, s/(char *)//. 2008-04-22 00:14:20 +00:00
dyoung
197afa999c Change int to bool in a couple of places. 2008-04-21 05:33:55 +00:00
dyoung
babbbc034d s/(caddr_t)// 2008-04-21 02:10:45 +00:00
dyoung
246781acda Change bzero calls to memset calls. 2008-04-21 02:08:09 +00:00
dyoung
f7545c1509 Straggler from last: call fewer protocol family-specific initialization
routines from main(), since the protocol-family modules are taking
care of it.
2008-04-15 22:26:58 +00:00
dyoung
499909306a Use static initializers to setup ISO and IPv6 addresses, instead
of calling protocol family-specific routines from main().
2008-04-15 22:24:37 +00:00
dyoung
8de26a0c60 Cosmetic: write strcmp() == 0 instead of !strcmp(). 2008-04-15 22:14:07 +00:00
dyoung
adc446d581 Cosmetic: delete dead code. 2008-04-14 15:57:15 +00:00
dyoung
18685458ac Cosmetic: use NULL instead of 0 for pointers. Shorten staircase. 2008-04-11 01:14:28 +00:00
dyoung
457345432a Cosmetic: compare socket address family with AF_UNSPEC instead of
0.
2008-04-11 00:56:11 +00:00
dyoung
aeb69f8d9e Cosmeticc: there's no use casting a uint16_t to a u_short, so don't
do that.  Change indentation for readability.
2008-04-11 00:55:41 +00:00
degroote
9fe6472fc5 Add support for the command list scan in ifconfig (this command permits to scan
access point in the neighbourhood).

Complete list of channel attributes and list of management information element
payload.

While here, use estrlcpy instead of strncpy.

From FreeBSD ifconfig and net80211
2007-12-16 13:49:21 +00:00
mishka
d7d886db87 Our VLAN implementation (as it correctly expected) is not allowed
to modify the whole VLAN tags, but it is permitted to change 12-bit
VLAN identificators only. Reflect this fact on the appropriate man
pages.

Antti Kantee and Mihai Chelaru from #netbsd-code were helpful in
better understanding of VLAN stuff. Thank you!
2007-06-05 11:15:15 +00:00
dyoung
5630b5969e Don't try to convert numbers to names for either endpoint of a
tunnel.  In this way, ifconfig will avoid emitting something
abominable like this:

        tunnel 192.168.1.1,mdns --> 192.168.1.2,kazaa
2007-03-26 05:02:44 +00:00
dyoung
3dfd6a1c5f Print more 802.11 statistics when the operator runs 'ifconfig -v
ath0', for example.  Fix the spelling of one statistic.
2007-01-09 09:25:56 +00:00
dyoung
dbf49243d9 Per discussion "ifconfig error handling" on tech-net@ in August
2006, if we fail to set any 802.11 parameter, exit immediately with
EXIT_FAILURE.
2007-01-09 09:24:14 +00:00
dyoung
d097d6a596 Let us adjust the 802.11 fragmentation threshold with ifconfig ath0
frag 256, for example.
2007-01-09 09:19:02 +00:00
wiz
856416cc4a Punctuation nit, sort SEE ALSO. 2006-12-23 07:41:26 +00:00
wiz
11b2ef8137 Remove a troff command that added some empty lines to the man(1) output. 2006-12-03 11:35:07 +00:00
yamt
809ec70bcf implement ipv6 TSO.
partly from Matthias Scheler.  tested by him.
2006-11-23 19:41:58 +00:00
dyoung
a25eaede91 Add a source-address selection policy mechanism to the kernel.
Also, add ioctls SIOCGIFADDRPREF/SIOCSIFADDRPREF to get/set preference
numbers for addresses.  Make ifconfig(8) set/display preference
numbers.

To activate source-address selection policies in your kernel, add
'options IPSELSRC' to your kernel configuration.

Miscellaneous changes in support of source-address selection:

        1 Factor out some common code, producing rt_replace_ifa().

        2 Abbreviate a for-loop with TAILQ_FOREACH().

        3 Add the predicates on IPv4 addresses IN_LINKLOCAL() and
          IN_PRIVATE(), that are true for link-local unicast
          (169.254/16) and RFC1918 private addresses, respectively.
          Add the predicate IN_ANY_LOCAL() that is true for link-local
          unicast and multicast.

        4 Add IPv4-specific interface attach/detach routines,
          in_domifattach and in_domifdetach, which build #ifdef
          IPSELSRC.

See in_getifa(9) for a more thorough description of source-address
selection policy.
2006-11-13 05:13:38 +00:00
christos
00ab1df137 - get rid of p_cfunc2
- add missing initializers
2006-10-16 02:52:43 +00:00
hubertf
8e46fd3f16 Fix typo, noted by Nino Dehne <ndehne@gmail.com> 2006-09-16 20:15:49 +00:00
dyoung
47be766fd3 Add a mode to gre(4) that sends GRE tunnel packets in UDP datagrams.
Fix MOBILE encapsulation.  Add many debugging printfs (mainly
concerning UDP mode).  Clean up the gre(4) code a bit.  Add the
capability to setup UDP tunnels to ifconfig.  Update documentation.

In UDP mode, gre(4) puts a GRE header onto transmitted packets,
and hands them to a UDP socket for transmission.  That is, the
encapsulation looks like this: IP+UDP+GRE+encapsulated packet.

There are two ways to set up a UDP tunnel.  One way is to tell the
source and destination IP+port to gre(4), and let gre(4) create
the socket.  The other way to create a UDP tunnel is for userland
to "delegate" a UDP socket to the kernel.
2006-08-31 17:46:16 +00:00
christos
2a1607d040 Programs that use efun. 2006-08-26 18:14:28 +00:00
matt
cca9bcea2e Nuke a leftover XNS fragment. 2006-08-26 16:59:27 +00:00
matt
bb735e0ef9 Remove XNS support. 2006-08-26 16:20:20 +00:00
martin
50edcae7de Trying the old "ifconfig <name> x.x.x.x down" issue again:
if the kernel does not set the interface up after we set an address,
do it explicitly, unless we (previously) set it down on user request.

This will allow the network drivers to be "fixed" while keeping visible
behaviour the same. Part of fixing PR 30694.
2006-07-13 14:02:03 +00:00
drochner
c6b8e0a9fe fix an Xref 2006-06-30 15:51:36 +00:00
elad
d10cf99230 fix incorrect usage of strncpy() to (an internal implementation of)
estrlcpy().

okay christos
2006-06-16 23:48:35 +00:00
tron
2ab5da17ce Adapt ifconfig(8) to new return value from socket(2). This stops
ifconfig(8) from printing errors like "ifconfig: socket: Address
family not supported by protocol family" when examining the status
of a network interface.
2006-06-14 11:05:42 +00:00
liamjfoy
4876c304b1 Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device	carp'

Thanks to: joerg@ christos@ riz@ and others who tested
Ok: core@
2006-05-18 09:05:49 +00:00
mrg
19b4ae1a8b remove extern for unused ifr6. 2006-05-11 00:46:02 +00:00
wiz
4d1a166e8b Remove trailing whitespace. 2006-05-06 07:01:22 +00:00
rpaulo
227effc121 Add two new options from FreeBSD:
hidessid | -hidessid:	SSID broadcast control
	apbridge | -apbridge:	how to pass packets between wifi clients
2006-04-29 21:32:29 +00:00
christos
86b43a935f PR/32628: Yves-Emmanuel JUTARD: Missing cast in sbin/ifconfig/ifconfig.c,
strcasecmp needs char * not u_int8_t *.
2006-01-25 16:08:49 +00:00
dyoung
b1725a3d60 Commit a straggler: use the new SIOCG80211STATS/SIOCG80211ZSTATS
ABI.
2005-09-15 23:35:15 +00:00
wiz
667d70cb77 Argument is address_family, not "address family". From YOMURA Masanori in private mail. 2005-09-11 23:37:14 +00:00
rpaulo
aaf548920f Explained the '-h' option. 2005-08-11 20:56:57 +00:00
rpaulo
630caafc65 Added a new ifconfig flag, -h, allowing, in conjunction with -v, the display
of interface I/O bytes in human-format.

Reviewed by Christos Zoulas and Jason Thorpe.
2005-08-11 20:56:05 +00:00
christos
2c6eadc9ce Move WARNS=3 to the Makefile.inc, and add a little const to the remaining
programs that did not compile before.
2005-06-27 01:00:04 +00:00
dyoung
9063402978 Resolve conflicts in importation of 18-May-2005 ath(4) / net80211(9)
from FreeBSD.  Introduce compatibility shims (sys/dev/ic/ath_netbsd.[ch],
sys/net80211/ieee80211_netbsd.[ch]).  Update drivers (an, atu, atw,
awi, ipw, iwi, rtw, wi) for the new net80211(9) API.
2005-06-22 06:14:51 +00:00
yamt
b954935865 bump date for the previous. 2005-05-02 15:37:06 +00:00