Commit Graph

770 Commits

Author SHA1 Message Date
thorpej 831d5b8d43 Add SIOCGIFDLT, which will fetch the data link type (DLT_* constant)
for a given network interface.
2000-12-18 21:05:03 +00:00
thorpej 0b541534c5 Add an "ifr_dlt" alias for the union in struct ifreq. 2000-12-18 21:03:34 +00:00
thorpej 192e2774b3 Always pull in DLT_* constants. 2000-12-18 20:58:41 +00:00
thorpej 023adb3093 Use IFQ_PURGE(). 2000-12-18 20:50:36 +00:00
thorpej 5363e5eed4 ALTQ'ify. 2000-12-18 20:47:10 +00:00
thorpej 541812a992 ALTQ'ify. 2000-12-18 20:41:44 +00:00
thorpej ed7695a765 Fill in if_dlt. 2000-12-18 19:44:33 +00:00
thorpej 23df92e38d Small cosmetic change. 2000-12-18 19:36:41 +00:00
thorpej 6484f81abc We now support hw vlan tag support in network interfaces, so remote it
from the TODO list.
2000-12-18 19:32:20 +00:00
thorpej 00d64bedbc Add a if_dlt member, used so that userland can query the DLT_* of an
interface without having to first attach it to a bpfdesc.
2000-12-18 19:25:57 +00:00
thorpej db9fd3e536 Add ALTQ support. This is used for testing/debugging ALTQ only. It
is triggered only on loopback interfaces, and not simplex interfaces
(which also use looutput()).
2000-12-18 19:18:33 +00:00
thorpej 66539b9373 Add ALTQ support. 2000-12-18 18:57:21 +00:00
thorpej 2663dfcf85 Commit to the ALTQ glue. 2000-12-18 18:54:47 +00:00
thorpej 721139924d Add a version of the 802.11 frame header that includes the 4th address. 2000-12-18 18:00:23 +00:00
itojun 60fa2b29af fix typo in function name (rn_satsifies_leaf -> satisfies). indent.
split rn_inithead() into two function - i'm putting some hook around here.
2000-12-17 10:23:19 +00:00
thorpej e961c654a8 Change an if_qflush() to an IFQ_PURGE() to deal with ALTQ correctly. 2000-12-14 17:47:26 +00:00
thorpej fb2688c12f Fix braino in IF_PURGE(). 2000-12-14 00:19:42 +00:00
thorpej dce7e1a85b Oops, forgot IFQ_POLL() in the ALTQ case. 2000-12-14 00:07:35 +00:00
thorpej 3dc1664f57 Add ALTQ glue. 2000-12-13 22:07:50 +00:00
thorpej cdcd4fad5e In if_qflush(), use IFQ_PURGE() rathen than an open-coded version. 2000-12-13 22:06:05 +00:00
thorpej df303090c2 First step at integrating ALTQ -- IFQ_*() glue macros that select
old-style queueing or ALTQ based on a compile time option.
2000-12-13 22:05:12 +00:00
thorpej 173c0bb9d7 Include BPF headers as necessary (feh, too many changes to try and
merge...)
2000-12-12 18:22:39 +00:00
thorpej bb1175954d Use <net/dlt.h> 2000-12-12 18:03:25 +00:00
thorpej c5293456da Adapt to bpfattach() changes, and further centralize the bpfattach()
and bpfdetach() calls into link-type subroutines where possible.
2000-12-12 18:00:22 +00:00
thorpej bfaf37d464 Use <net/dlt.h> to get the DLT_* constants. Also change bpfattach()
and bpf_change_type() to take just a pointer to the ifnet, rather than
a pointer to the ifnet and a pointer to a member of the ifnet (the bpf
pointer).

We'll let this ride on the Dec 12 1.5N version bump.
2000-12-12 17:55:21 +00:00
thorpej 00052cdc53 Put the BPF DLT_* constants into their own header file so that things
that reference them don't have to slurp in all of the BPF headers.

Define a new generic RAWAF type that is like DLT_RAW, but isn't specific
to IP (the macro takes an AF_* constant as an argument to generate the
actual type).
2000-12-12 17:53:00 +00:00
thorpej 2a6413983b Only allow superuser to change 802.11 power params. 2000-12-12 17:48:29 +00:00
thorpej 589bc762b7 Add a way to manipulate the power management parameters specified in
802.11.
2000-12-12 04:03:38 +00:00
itojun 93292b8aaa do not touch region after free 2000-12-11 07:52:48 +00:00
itojun 5eae50d991 update icmp6 too big validation. the change is necessary since pmtud is
mandatory for IPv6 (so we can't just validate by using connected pcb - we need
to allow traffic from unconnected pcb to do pmtud).
- if the traffic is validated by xx_ctlinput, allow up to "hiwat" pmtud
  route entries.
- if the traffic was not validated by xx_ctlinput, allow up to "lowat" pmtud
  route entries (there's upper limit, so bad guys cannot blow up our routing
  table).
sync with kame

XXX need to think again about default hiwat/lowat value.
XXX victim selection to help starvation case
2000-12-09 01:29:45 +00:00
onoe 2819c7b688 Use DMA from mbuf instead of copy in transmit.
Still use memcpy in receiving because we must use buffer fill mode
	and many packets may share single receive buffer.

XXX: Workaround(?) for CXD3222: it fails to DMA for selfid packet according
to code placement. I'm not sure about the reason (cache? timing? bug?).

Fixed the bug: transmitter sometimes stop and OACTIVE bit of if_fw
never be cleared.
Fixed the bug: freeing free buffer.

Enable ieee1394_drain and ieee1394_watchdog for loss of fragment.
2000-11-20 12:12:18 +00:00
martin 4a0283d9f0 Allow changing of settings via ioctl only for the superuser.
Fixes PR security/11524.
2000-11-19 18:48:44 +00:00
bouyer 6e08061c2a Supports hardware 802.1q VLAN tagging, per discussion on tech-net. The tag is
stored in a m_aux mbuf defined by AF_LINK, ETHERTYPE_VLAN.
Thanks to Jason & Itojun for the feedback.
2000-11-17 19:21:53 +00:00
bouyer 0d0fd7718e Per discussion with Jason, change flags filter to
(IFF_UP | IFF_BROADCAST | IFF_RUNNING | IFF_ALLMULTI | IFF_SIMPLEX)
Also, put the ifp->if_opackets++ at the rigth place so that the counter is
incremented even when the parent is OACTIVE.
Fix a bug in vlan_input where the ethernet src and dst addrs would not be
correct because we only memmove() only ifv->ifv_encaplen instead of
sizeof(struct ether_header).
2000-11-15 18:15:11 +00:00
thorpej b84f740be0 Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach(). 2000-11-15 01:02:11 +00:00
onoe f1c77e81db Add support for link fragmentation and reassemble for IEEE-1394.
XXX: drain is still not yet implemented, thus memory leak will occur
    in case of any of fragment lost.
2000-11-14 11:14:55 +00:00
bouyer 3659b305e5 In vlan_config(), filter flags inherited from parent interface to
(IFF_UP | IFF_BROADCAST | IFF_RUNNING | IFF_ALLMULTI | IFF_SIMPLEX)
Without this, if the parent is OACTIVE of PROMISC at config time, we
loose.
2000-11-12 19:39:42 +00:00
thorpej 65fd25ea82 Restructure the PFIL_HOOKS mechanism a bit:
- All packets are passed to PFIL_HOOKS as they come off the wire, i.e.
  fields in protocol headers in network order, etc.
- Allow for multiple hooks to be registered, using a "key" and a "dlt".
  The "dlt" is a BPF data link type, indicating what type of header is
  present.
- INET and INET6 register with key == AF_INET or AF_INET6, and
  dlt == DLT_RAW.
- PFIL_HOOKS now take an argument for the filter hook, and mbuf **,
  an ifnet *, and a direction (PFIL_IN or PFIL_OUT), thus making them
  less IP (really, IP Filter) centric.

Maintain compatibility with IP Filter by adding wrapper functions for
IP Filter.
2000-11-11 00:52:36 +00:00
thorpej ecf191df62 Pull in <sys/time.h>, since we use timevals here. 2000-11-11 00:11:04 +00:00
enami 7d3b20fb20 Don't require the size of sockaddr to be rounded up if it was the last one
and was netmask.
2000-11-10 03:37:42 +00:00
enami d93a3cbc40 Don't return uninitialized value. 2000-11-10 02:31:53 +00:00
enami f52dd5bd61 Don't unlink and deallocate ether_multi here. ether_ifdetach will do it. 2000-11-10 02:29:44 +00:00
enami 17707b76db Define struct member correctly. This fixes a panic due to overwrite of stack. 2000-11-10 02:27:19 +00:00
thorpej c1e8f10429 Implement promiscuous mode. 2000-11-09 05:57:38 +00:00
itojun ad037eb274 avoid namespace pollution by radix.h. the #ifndef _KERNEL portion was to
use radix.c in userland compilation, however, noone is using it.
(routed has its own radix.c)
2000-11-06 11:07:37 +00:00
onoe e83458422f First Prototype implementation of network interface part for IEEE1394 (if_fw).
Current status:
	Only OHCI chip is supported (fwohci).
	ping (IPv4) works with Sony's implementation (SmartConnect) on Win98.
	sometimes works but not stable.
Not implemented yet:
	IRM (Isochronous Resource Manager) functionality.
	Link layer fragmentation.
	Topology map.
More to do:
	clean ups
	MCAP
	charactor device part
	dhcp

There is no entry in GENERIC config file yet.
Follow sys/dev/ieee1394/IMPLEMENTATION to enable if_fw.
2000-11-05 17:17:12 +00:00
eeh 16bbba0a23 Fix bug w/previous. 2000-11-02 16:50:17 +00:00
eeh 746166e492 Fix sparc64 LP64 issues. 2000-11-02 16:14:05 +00:00
itojun d36abffc92 sync with struct tty change (does it look correct?) 2000-11-02 15:51:18 +00:00
itohy 344f9b7b00 Set the default line discipline to t_linesw, rather than just NULL it. 2000-11-02 12:00:49 +00:00
itohy 486a58959c Adapt to the new line discipline scheme. 2000-11-02 11:00:53 +00:00
onoe 226930604b Add new numbers from IANA: 0x83 - 0xbd 2000-10-26 06:51:31 +00:00
wiz 75311ca708 Fix typo (thinko?), which didn't allow MRU to be set below the default
value (instead of the minimum value). Patch supplied by Stephen Degler
in PR #9945, and reviewed by Ignatios Souvatzis.
2000-10-26 01:26:15 +00:00
itojun 27fcf101a1 prevent stack overwrite due to bzero() arg mistake. from msaitoh. 2000-10-19 01:07:42 +00:00
matt cf67b6ff59 When discarding oversized frame, say how long it was. 2000-10-15 19:49:55 +00:00
itojun d7a216bb96 suppress warning on nd6_storelladdr failure. the failure could happen
easily when we have routing table with too many entries.  sync with kame.
2000-10-15 15:39:11 +00:00
bouyer 29fdeefaff Don't try to handle SIOCSIFADDR/SIOCADDMULTI/SIOCDELMULTI if a vlan/vlanif
hasn't been configured (prevent a panic in arp_ifinit when setting an
IP addr with no vlan/vlanif).
2000-10-15 11:58:26 +00:00
thorpej fabbb33a60 Implement ether_ioctl(), ioctl operations common to all Ethernet
interfaces.
2000-10-11 16:53:41 +00:00
thorpej 7e2259325b Change the if_reset vector to if_init, and add an if_stop. if_stop
also takes an argument indicating whether or not the interface should
also be disabled (i.e. power removed, resources freed, etc.)
2000-10-11 16:52:34 +00:00
itojun 014e2a97b5 fix comment (s/IPv6/IP/) 2000-10-10 11:43:51 +00:00
ad 04e67112d6 Remove defunct bpfdetach()/ether_ifdetach() calls. 2000-10-10 10:07:35 +00:00
itojun 4eb5250694 fix operator precedence (& and &&). do not transmit too much message
from LCP layer to NCP layer.  PR 11161.
2000-10-08 02:37:42 +00:00
itojun 08af3d2f82 validate args to SIOC[SG]IFPHY* better. 2000-10-07 04:18:04 +00:00
itojun ff01d6f0b1 repair SIOCGIFP{DST,SRC}ADDR. 2000-10-07 03:41:38 +00:00
onoe 3ec2a62f74 unique #include opt_inet.h 2000-10-06 04:49:53 +00:00
itojun bb4b4d9e39 ifp->if_ioctl may be NULL, so check it for SIOCSIFPHY*. 2000-10-04 22:37:41 +00:00
thorpej 3ba709aec7 Make sure we're super-user for SIOCSIFPHYADDR, SIOCDIFPHYADDR,
and SIOCSIFPHYADDR_IN6.
2000-10-04 21:12:40 +00:00
enami d86752997f Free mbuf when dropping VLAN frame due to no configured vlan interface. 2000-10-04 07:01:52 +00:00
enami b817ce40cb Cosmetic changes. 2000-10-04 06:51:12 +00:00
enami bc50cb2cae Remove redundant assignment. 2000-10-04 06:20:05 +00:00
itojun 6b9793517d need opt_inet.h for #ifdef INET 2000-10-04 02:51:18 +00:00
thorpej 9f76a74e1e Pop one off the TODO list. 2000-10-03 23:52:39 +00:00
thorpej efbead5055 When an Ethernet interface detaches, unconfigure any VLANs associated
with it.
2000-10-03 23:50:52 +00:00
thorpej 96375e93ea Improve the VLAN support, in particular, handling of MTU:
- Add a macro to compute the max frame length based on Ethertype
  and presence of FCS, and use it to validate the packet size
  in ether_input().
- Add capabilites to struct ethercom, and allow hardware drivers
  to specify that they can handle the larger hardware MTU that
  VLANs require in order to strictly conform to 802.1Q.
- Make ether_ifdetach() clear out the link address and free all of
  the Ethernet multicast structures.

Also, rearrange the VLAN driver itself in preparation to supporting
other hardware types, including FDDI (which has 802.1Q VLAN capability).
2000-10-03 23:33:38 +00:00
itojun 2fe73fd967 typo 2000-10-03 22:46:21 +00:00
itojun 6653c1a74d forgot to update maximum number of algorithms 2000-10-03 22:43:52 +00:00
itojun 553ce2a5e7 add official # for AES (12), and make it equal to rijndael.
Note that:
- IANA assignment was made for AES
- we still have some time window till AES gets finalized, so until it gets
  finalized, we are not certain if AES == rijndael
but it should now be okay.
2000-10-03 21:45:44 +00:00
itojun 05d1b41473 get rid of RC5 algorithm # completely (#if 0'ed for a long time)
sync with kame.
2000-10-03 06:36:31 +00:00
ad 3a739b04a0 htons -> ntohs. From Alan Barrett <apb@cequrux.com>. 2000-10-02 14:41:26 +00:00
itojun dcfe05e7c1 fix compilation without INET. fix confusion between ipsecstat and ipsec6stat.
sync with kame.
2000-10-02 03:55:41 +00:00
itojun dd859d3462 enable VJC only with INET 2000-10-02 03:54:10 +00:00
itojun b8453a0291 fix compilation without INET 2000-10-02 03:53:47 +00:00
itojun 1af3d80bce fix compilation without INET. 2000-10-02 03:53:07 +00:00
itojun 412b3abb5f fix IPv6 packet manipulation. (use ip6intrq) 2000-10-02 03:52:10 +00:00
itojun 253515cca1 cosmetic; repair indentation 2000-10-02 03:51:18 +00:00
thorpej 4a66a476e9 Make the previous code path simpler (and possible easier for the
compiler to optimize), based on fddi_input().
2000-10-01 23:43:44 +00:00
thorpej 7ca3fb9ef0 Move the check for "promisc + unicast + not for us" into ether_input(),
and change Ethernet drivers to always pass all received frames to
ether_input() (with a few exceptions, which are documented in the
code).
2000-10-01 23:32:39 +00:00
thorpej 8dc841aa19 Change the behavior of ifpromisc() slightly. If interface is not IFF_UP,
attempting to enable promisc would result in ENETDOWN.  Change this to
allow the interface to always be placed in promiscuous mode, regardless
of IFF_UP.  When the interface does come up, the IFF_PROMISC flag will
be consulted, and this matches the behavior that disabling promiscuous
mode has.
2000-10-01 23:16:07 +00:00
mellon b58f5e5835 - Figure out how long if list buffer needs to be if it's too short (fixes
PR#10968).
2000-09-29 00:37:37 +00:00
ad d74621ea64 Add an item to the TODO list. 2000-09-28 10:02:09 +00:00
enami a5028df36d Don't unconfigure if it is already unconfigured. 2000-09-28 08:28:56 +00:00
enami 177a258793 Fix think-o in previous; don't do the same test twice. 2000-09-28 07:35:36 +00:00
enami 8e1cd4f341 Port the multicast handling to NetBSD correctly. 2000-09-28 07:20:56 +00:00
enami bf888fcd19 Factor out and give a name to the common functionality to translate
sockaddr which represents a multicast address into an Ethernet address
or range of Etherenet addresses.
2000-09-28 07:15:27 +00:00
enami dcf72a770a s/6/ETHER_ADDR_LEN/ 2000-09-28 07:01:41 +00:00
enami 63b56285cd Remove unnecessary test. 2000-09-28 07:00:53 +00:00
enami 2c4a718932 Remove unnecessary function decl. 2000-09-28 06:13:35 +00:00
enami b531012315 Install if_vlanvar.h. 2000-09-28 06:06:50 +00:00
erh d921f48d7a When grabbing address structures out of a character array make sure that the number of addresses and length of each match up with the size of the data we're handed. Fixes arp on the alpha. 2000-09-28 01:14:06 +00:00
thorpej 77efca7976 Glue VLANs into ether_input(). 2000-09-27 22:58:21 +00:00