10a94d38fSBill Fenner@(#) $Header: /tcpdump/master/libpcap/CHANGES,v 1.56 2001/10/23 04:37:31 mcr Exp $ (LBL) 20a94d38fSBill Fenner 30a94d38fSBill FennerMonday October 23, 2001. mcr@sandelman.ottawa.on.ca. Summary for 0.7 release 40a94d38fSBill Fenner 50a94d38fSBill Fenner Added pcap_findalldevs() call to get list of interfaces in a MI way. 60a94d38fSBill Fenner 70a94d38fSBill Fenner pcap_stats() has been documented as to what its counters mean on 80a94d38fSBill Fenner each platform. 98751327cSBill Fenner 10dc2c7305SBill FennerTuesday January 9, 2001. guy@alum.mit.edu. Summary for 0.6 release 118751327cSBill Fenner 12dc2c7305SBill Fenner New Linux libpcap implementation, which, in 2.2 and later 13dc2c7305SBill Fenner kernels, uses PF_PACKET sockets and supports kernel packet 14dc2c7305SBill Fenner filtering (if compiled into the kernel), and supports the "any" 15dc2c7305SBill Fenner device for capturing on all interfaces. Cleans up promiscuous 16dc2c7305SBill Fenner mode better on pre-2.2 kernels, and has various other fixes 17dc2c7305SBill Fenner (handles 2.4 ARPHRD_IEEE802_TR, handles ISDN devices better, 18dc2c7305SBill Fenner doesn't show duplicate packets on loopback interface, etc.). 19dc2c7305SBill Fenner 20dc2c7305SBill Fenner Fixed HP-UX libpcap implementation to correctly get the PPA for 21dc2c7305SBill Fenner an interface, to allow interfaces to be opened by interface name. 22dc2c7305SBill Fenner 23dc2c7305SBill Fenner libpcap savefiles have system-independent link-layer type values 24dc2c7305SBill Fenner in the header, rather than sometimes platform-dependent DLT_ 25dc2c7305SBill Fenner values, to make it easier to exchange capture files between 26dc2c7305SBill Fenner different OSes. 27dc2c7305SBill Fenner 28dc2c7305SBill Fenner Non-standard capture files produced by some Linux tcpdumps, e.g. 29dc2c7305SBill Fenner the one from Red Hat Linux 6.2 and later, can now be read. 30dc2c7305SBill Fenner 31dc2c7305SBill Fenner Updated autoconf stock files. 32dc2c7305SBill Fenner 33dc2c7305SBill Fenner Filter expressions can filter on VLAN IDs and various OSI 34dc2c7305SBill Fenner protocols, and work on Token Ring (with non-source-routed 35dc2c7305SBill Fenner packets). 36dc2c7305SBill Fenner 37dc2c7305SBill Fenner "pcap_open_dead()" added to allow compiling filter expressions 38dc2c7305SBill Fenner to pcap code without opening a capture device or capture file. 39dc2c7305SBill Fenner 40dc2c7305SBill Fenner Header files fixed to allow use in C++ programs. 41dc2c7305SBill Fenner 42dc2c7305SBill Fenner Removed dependancy on native headers for packet layout. 43dc2c7305SBill Fenner Removed Linux specific headers that were shipped. 44dc2c7305SBill Fenner 45dc2c7305SBill Fenner Security fixes: Strcpy replaced with strlcpy, sprintf replaced 46dc2c7305SBill Fenner with snprintf. 47dc2c7305SBill Fenner 48dc2c7305SBill Fenner Fixed bug that could cause subsequent "pcap_compile()"s to fail 49dc2c7305SBill Fenner erroneously after one compile failed. 50dc2c7305SBill Fenner 51dc2c7305SBill Fenner Assorted other bug fixes. 52dc2c7305SBill Fenner 53dc2c7305SBill Fenner README.aix and README.linux files added to describe 54dc2c7305SBill Fenner platform-specific issues. 55dc2c7305SBill Fenner 56dc2c7305SBill Fenner "getifaddrs()" rather than SIOCGIFCONF used, if available. 57dc2c7305SBill Fenner 58dc2c7305SBill Fennerv0.5 Sat Jun 10 11:09:15 PDT 2000 59dc2c7305SBill Fenner 60dc2c7305SBill Fenneritojun@iijlab.net 61dc2c7305SBill Fenner- Brought in KAME IPv6/IPsec bpf compiler. 62dc2c7305SBill Fenner- Fixes for NetBSD. 63dc2c7305SBill Fenner- Support added for OpenBSD DLT_LOOP and BSD/OS DLT_C_HDLC (Cisco HDLC), 64dc2c7305SBill Fenner and changes to work around different BSDs having different DLT_ types 65dc2c7305SBill Fenner with the same numeric value. 66dc2c7305SBill Fenner 67dc2c7305SBill FennerAssar Westerlund <assar@sics.se> 68dc2c7305SBill Fenner- Building outside the source code tree fixed. 69dc2c7305SBill Fenner- Changed to write out time stamps with 32-bit seconds and microseconds 70dc2c7305SBill Fenner fields, regardless of whether those fields are 32 bits or 64 bits in 71dc2c7305SBill Fenner the OS's native "struct timeval". 72dc2c7305SBill Fenner- Changed "pcap_lookupdev()" to dynamically grow the buffer into which 73dc2c7305SBill Fenner the list of interfaces is read as necessary in order to hold the 74dc2c7305SBill Fenner entire list. 75dc2c7305SBill Fenner 76dc2c7305SBill FennerGreg Troxel <gdt@ir.bbn.com> 77dc2c7305SBill Fenner- Added a new "pcap_compile_nopcap()", which lets you compile a filter 78dc2c7305SBill Fenner expression into a BPF program without having an open live capture or 79dc2c7305SBill Fenner capture file. 80a4b5b39fSBill Fenner 81a4b5b39fSBill Fennerv0.4 Sat Jul 25 12:40:09 PDT 1998 82a4b5b39fSBill Fenner 83a4b5b39fSBill Fenner- Fix endian problem with DLT_NULL devices. From FreeBSD via Bill 84a4b5b39fSBill Fenner Fenner (fenner@parc.xerox.com) 85a4b5b39fSBill Fenner 86a4b5b39fSBill Fenner- Fix alignment problem with FDDI under DLPI. This was causing core 87a4b5b39fSBill Fenner dumps under Solaris. 88a4b5b39fSBill Fenner 89a4b5b39fSBill Fenner- Added configure options to disable flex and bison. Resulted from a 90a4b5b39fSBill Fenner bug report by barnett@grymoire.crd.ge.com (Bruce Barnett). Also added 91a4b5b39fSBill Fenner options to disable gcc and to force a particular packet capture type. 92a4b5b39fSBill Fenner 93a4b5b39fSBill Fenner- Added support for Fore ATM interfaces (qaa and fa) under IRIX. Thanks 94a4b5b39fSBill Fenner to John Hawkinson (jhawk@mit.edu) 95a4b5b39fSBill Fenner 96a4b5b39fSBill Fenner- Change Linux PPP and SLIP to use DLT_RAW since the kernel does not 97a4b5b39fSBill Fenner supply any "link layer" data. 98a4b5b39fSBill Fenner 99a4b5b39fSBill Fenner- Change Linux to use SIOCGIFHWADDR ioctl to determine link layer type. 100a4b5b39fSBill Fenner Thanks to Thomas Sailer (sailer@ife.ee.ethz.ch) 101a4b5b39fSBill Fenner 102a4b5b39fSBill Fenner- Change IRIX PPP to use DLT_RAW since the kernel does not supply any 103a4b5b39fSBill Fenner "link layer" data. 104a4b5b39fSBill Fenner 105a4b5b39fSBill Fenner- Modified to support the new BSD/OS 2.1 PPP and SLIP link layer header 106a4b5b39fSBill Fenner formats. 107a4b5b39fSBill Fenner 108a4b5b39fSBill Fenner- Added some new SGI snoop interface types. Thanks to Steve Alexander 109a4b5b39fSBill Fenner (sca@refugee.engr.sgi.com) 110a4b5b39fSBill Fenner 111a4b5b39fSBill Fenner- Fixes for HP-UX 10.20 (which is similar to HP-UX 9). Thanks to 112a4b5b39fSBill Fenner Richard Allen (ra@hp.is) and Steinar Haug (sthaug@nethelp.no) 113a4b5b39fSBill Fenner 114a4b5b39fSBill Fenner- Fddi supports broadcast as reported by Jeff Macdonald 115a4b5b39fSBill Fenner (jeff@iacnet.com). Also correct ieee802 and arcnet. 116a4b5b39fSBill Fenner 117a4b5b39fSBill Fenner- Determine Linux pcap buffer size at run time or else it might not be 118a4b5b39fSBill Fenner big enough for some interface types (e.g. FDDI). Thanks to Jes 119a4b5b39fSBill Fenner Sorensen (Jes.Sorensen@cern.ch) 120a4b5b39fSBill Fenner 121a4b5b39fSBill Fenner- Fix some linux alignment problems. 122a4b5b39fSBill Fenner 123a4b5b39fSBill Fenner- Document promisc argument to pcap_open_live(). Reported by Ian Marsh 124a4b5b39fSBill Fenner (ianm@sics.se) 125a4b5b39fSBill Fenner 126a4b5b39fSBill Fenner- Support Metricom radio packets under Linux. Thanks to Kevin Lai 127a4b5b39fSBill Fenner (laik@gunpowder.stanford.edu) 128a4b5b39fSBill Fenner 129a4b5b39fSBill Fenner- Bind to interface name under Linux to avoid packets from multiple 130a4b5b39fSBill Fenner interfaces on multi-homed hosts. Thanks to Kevin Lai 131a4b5b39fSBill Fenner (laik@gunpowder.stanford.edu) 132a4b5b39fSBill Fenner 133a4b5b39fSBill Fenner- Change L_SET to SEEK_SET for HP-UX. Thanks to Roland Roberts 134a4b5b39fSBill Fenner (rroberts@muller.com) 135a4b5b39fSBill Fenner 136a4b5b39fSBill Fenner- Fixed an uninitialized memory reference found by Kent Vander Velden 137a4b5b39fSBill Fenner (graphix@iastate.edu) 138a4b5b39fSBill Fenner 139a4b5b39fSBill Fenner- Fixed lex pattern for IDs to allow leading digits. As reported by 140a4b5b39fSBill Fenner Theo de Raadt (deraadt@cvs.openbsd.org) 141a4b5b39fSBill Fenner 142a4b5b39fSBill Fenner- Fixed Linux include file problems when using GNU libc. 143a4b5b39fSBill Fenner 144a4b5b39fSBill Fenner- Ifdef ARPHRD_FDDI since not all versions of the Linux kernel have it. 145a4b5b39fSBill Fenner Reported reported by Eric Jacksch (jacksch@tenebris.ca) 146a4b5b39fSBill Fenner 147a4b5b39fSBill Fenner- Fixed bug in pcap_dispatch() that kept it from returning on packet 148a4b5b39fSBill Fenner timeouts. 149a4b5b39fSBill Fenner 150a4b5b39fSBill Fenner- Changed ISLOOPBACK() macro when IFF_LOOPBACK isn't available to check 151a4b5b39fSBill Fenner for "lo" followed by an eos or digit (newer versions of Linux 152a4b5b39fSBill Fenner apparently call the loopback "lo" instead of "lo0"). 153a4b5b39fSBill Fenner 154a4b5b39fSBill Fenner- Fixed Linux networking include files to use ints instead of longs to 155a4b5b39fSBill Fenner avoid problems with 64 bit longs on the alpha. Thanks to Cristian 156a4b5b39fSBill Fenner Gafton (gafton@redhat.com) 1573052b236SBill Fenner 1583052b236SBill Fennerv0.3 Sat Nov 30 20:56:27 PST 1996 1593052b236SBill Fenner 1603052b236SBill Fenner- Added Linux support. 1613052b236SBill Fenner 1623052b236SBill Fenner- Fixed savefile bugs. 1633052b236SBill Fenner 1643052b236SBill Fenner- Solaris x86 fix from Tim Rylance (t.rylance@elsevier.nl) 1653052b236SBill Fenner 1663052b236SBill Fenner- Add support for bpf kernel port filters. 1673052b236SBill Fenner 1683052b236SBill Fenner- Remove duplicate atalk protocol table entry. Thanks to Christian 1693052b236SBill Fenner Hopps (chopps@water.emich.edu) 1703052b236SBill Fenner 1713052b236SBill Fenner- Fixed pcap_lookupdev() to ignore nonexistent devices. This was 1723052b236SBill Fenner reported to happen under BSD/OS by David Vincenzetti 1733052b236SBill Fenner (vince@cryptonet.it) 1743052b236SBill Fenner 1753052b236SBill Fenner- Avoid solaris compiler warnings. Thanks to Bruce Barnett 1763052b236SBill Fenner (barnett@grymoire.crd.ge.com) 1778cf6c252SPaul Traina 1788cf6c252SPaul Trainav0.2.1 Sun Jul 14 03:02:26 PDT 1996 1798cf6c252SPaul Traina 1808cf6c252SPaul Traina- Fixes for HP-UX 10. Thanks in part to to Thomas Wolfram 1818cf6c252SPaul Traina (wolf@prz.tu-berlin.de) and Rick Jones (raj@hpisrdq.cup.hp.com) 1828cf6c252SPaul Traina 1838cf6c252SPaul Traina- Added support for SINIX. Thanks to Andrej Borsenkow 1848cf6c252SPaul Traina (borsenkow.msk@sni.de) 1858cf6c252SPaul Traina 1868cf6c252SPaul Traina- Fixes for AIX (although this system is not yet supported). Thanks to 1878cf6c252SPaul Traina John Hawkinson (jhawk@mit.edu) 1888cf6c252SPaul Traina 1898cf6c252SPaul Traina- Use autoconf's idea of the top level directory in install targets. 1908cf6c252SPaul Traina Thanks to John Hawkinson. 1918cf6c252SPaul Traina 1928cf6c252SPaul Traina- Add missing autoconf packet capture result message. Thanks to Bill 1938cf6c252SPaul Traina Fenner (fenner@parc.xerox.com) 1948cf6c252SPaul Traina 1958cf6c252SPaul Traina- Fixed padding problems in the pf module. 1968cf6c252SPaul Traina 1978cf6c252SPaul Traina- Fixed some more alignment problems on the alpha. 1988cf6c252SPaul Traina 1998cf6c252SPaul Traina- Added explicit netmask support. Thanks to Steve Nuchia 2008cf6c252SPaul Traina (steve@research.oknet.com) 2018cf6c252SPaul Traina 2028cf6c252SPaul Traina- Fixed to handle raw ip addresses such as 0.0.0.1 without "left 2038cf6c252SPaul Traina justifing" 2048cf6c252SPaul Traina 2058cf6c252SPaul Traina- Add "sca" keyword (for DEC cluster services) as suggested by Terry 2068cf6c252SPaul Traina Kennedy (terry@spcvxa.spc.edu) 2078cf6c252SPaul Traina 2088cf6c252SPaul Traina- Add "atalk" keyword as suggested by John Hawkinson. 2098cf6c252SPaul Traina 2108cf6c252SPaul Traina- Add "igrp" keyword. 2118cf6c252SPaul Traina 2128cf6c252SPaul Traina- Fixed HID definition in grammar.y to be a string, not a value. 2138cf6c252SPaul Traina 2148cf6c252SPaul Traina- Use $CC when checking gcc version. Thanks to Carl Lindberg 2158cf6c252SPaul Traina (carl_lindberg@blacksmith.com) 2168cf6c252SPaul Traina 2178cf6c252SPaul Traina- Removed obsolete reference to pcap_immediate() from the man page. 2188cf6c252SPaul Traina Michael Stolarchuk (mts@terminator.rs.itd.umich.edu) 2198cf6c252SPaul Traina 2208cf6c252SPaul Traina- DLT_NULL has a 4 byte family header. Thanks to Jeffrey Honig 2218cf6c252SPaul Traina (jch@bsdi.com) 2228cf6c252SPaul Traina 2238cf6c252SPaul Trainav0.2 Sun Jun 23 02:28:42 PDT 1996 2248cf6c252SPaul Traina 2258cf6c252SPaul Traina- Add support for HP-UX. Resulted from code contributed by Tom Murray 2268cf6c252SPaul Traina (tmurray@hpindck.cup.hp.com) and Philippe-Andri Prindeville 2278cf6c252SPaul Traina (philipp@res.enst.fr) 2288cf6c252SPaul Traina 2298cf6c252SPaul Traina- Update INSTALL with a reminder to install include files. Thanks to 2308cf6c252SPaul Traina Mark Andrews (mandrews@aw.sgi.com) 2318cf6c252SPaul Traina 2328cf6c252SPaul Traina- Fix bpf compiler alignment bug on the alpha. 2338cf6c252SPaul Traina 2348cf6c252SPaul Traina- Use autoconf to detect architectures that can't handle misaligned 2358cf6c252SPaul Traina accesses. 2368cf6c252SPaul Traina 2378cf6c252SPaul Traina- Added loopback support for snoop. Resulted from report Steve 2388cf6c252SPaul Traina Alexander (sca@engr.sgi.com) 2398cf6c252SPaul Traina 2408cf6c252SPaul Trainav0.1 Fri Apr 28 18:11:03 PDT 1995 2418cf6c252SPaul Traina 2428cf6c252SPaul Traina- Fixed compiler and optimizer bugs. The BPF filter engine uses unsigned 2438cf6c252SPaul Traina comparison operators, while the code generator and optimizer assumed 2448cf6c252SPaul Traina signed semantics in several places. Thanks to Charlie Slater 2458cf6c252SPaul Traina (cslater@imatek.com) for pointing this out. 2468cf6c252SPaul Traina 2478cf6c252SPaul Traina- Removed FDDI ifdef's, they aren't really needed. Resulted from report 2488cf6c252SPaul Traina by Gary Veum (veum@boa.gsfc.nasa.gov). 2498cf6c252SPaul Traina 2508cf6c252SPaul Traina- Add pcap-null.c which allows offline use of libpcap on systems that 2518cf6c252SPaul Traina don't support live package capture. This feature resulting from a 2528cf6c252SPaul Traina request from Jan van Oorschot (j.p.m.voorschot@et.tudelft.nl). 2538cf6c252SPaul Traina 2548cf6c252SPaul Traina- Make bpf_compile() reentrant. Fix thanks to Pascal Hennequin 2558cf6c252SPaul Traina (Pascal.Hennequin@hugo.int-evry.fr). 2568cf6c252SPaul Traina 2578cf6c252SPaul Traina- Port to GNU autoconf. 2588cf6c252SPaul Traina 2598cf6c252SPaul Traina- Fix pcap-dlpi.c to work with isdn. Resulted from report by Flemming 2608cf6c252SPaul Traina Johansen (fsj@csd.cri.dk). 2618cf6c252SPaul Traina 2628cf6c252SPaul Traina- Handle multi-digit interface unit numbers (aka ppa's) under dlpi. 2638cf6c252SPaul Traina Resulted from report by Daniel Ehrlich (ehrlich@cse.psu.edu). 2648cf6c252SPaul Traina 2658cf6c252SPaul Traina- Fix pcap-dlpi.c to work in non-promiscuous mode. Resulted from report 2668cf6c252SPaul Traina by Jeff Murphy (jcmurphy@acsu.buffalo.edu). 2678cf6c252SPaul Traina 2688cf6c252SPaul Traina- Add support for "long jumps". Thanks to Jeffrey Mogul 2698cf6c252SPaul Traina (mogul@pa.dec.com). 2708cf6c252SPaul Traina 2718cf6c252SPaul Traina- Fix minor problems when compiling with BDEBUG as noticed by Scott 2728cf6c252SPaul Traina Bertilson (scott@unet.umn.edu). 2738cf6c252SPaul Traina 2748cf6c252SPaul Traina- Declare sys_errlist "const char *const" to avoid problems under 2758cf6c252SPaul Traina FreeBSD. Resulted from report by jher@eden.com. 2768cf6c252SPaul Traina 2778cf6c252SPaul Trainav0.0.6 Fri Apr 28 04:07:13 PDT 1995 2788cf6c252SPaul Traina 2798cf6c252SPaul Traina- Add missing variable declaration missing from 0.0.6 2808cf6c252SPaul Traina 2818cf6c252SPaul Trainav0.0.5 Fri Apr 28 00:22:21 PDT 1995 2828cf6c252SPaul Traina 2838cf6c252SPaul Traina- Workaround for problems when pcap_read() returns 0 due to the timeout 2848cf6c252SPaul Traina expiring. 2858cf6c252SPaul Traina 2868cf6c252SPaul Trainav0.0.4 Thu Apr 20 20:41:48 PDT 1995 2878cf6c252SPaul Traina 2888cf6c252SPaul Traina- Change configuration to not use gcc v2 flags with gcc v1. 2898cf6c252SPaul Traina 2908cf6c252SPaul Traina- Fixed a bug in pcap_next(); if pcap_dispatch() returns 0, pcap_next() 2918cf6c252SPaul Traina should also return 0. Thanks to Richard Stevens (rstevens@noao.edu). 2928cf6c252SPaul Traina 2938cf6c252SPaul Traina- Fixed configure to test for snoop before dlpi to avoid problems under 2948cf6c252SPaul Traina IRIX 5. Thanks to J. Eric Townsend (jet@abulafia.genmagic.com). 2958cf6c252SPaul Traina 2968cf6c252SPaul Traina- Hack around deficiency in Ultrix's make. 2978cf6c252SPaul Traina 2988cf6c252SPaul Traina- Fix two bugs related to the Solaris pre-5.3.2 bufmod bug; handle 2998cf6c252SPaul Traina savefiles that have more than snapshot bytes of data in them (so we 3008cf6c252SPaul Traina can read old savefiles) and avoid writing such files. 3018cf6c252SPaul Traina 3028cf6c252SPaul Traina- Added checkioctl which is used with gcc to check that the 3038cf6c252SPaul Traina "fixincludes" script has been run. 3048cf6c252SPaul Traina 3058cf6c252SPaul Trainav0.0.3 Tue Oct 18 18:13:46 PDT 1994 3068cf6c252SPaul Traina 3078cf6c252SPaul Traina- Fixed configure to test for snoop before dlpi to avoid problems under 3088cf6c252SPaul Traina IRIX 5. Thanks to J. Eric Townsend (jet@abulafia.genmagic.com). 3098cf6c252SPaul Traina 3108cf6c252SPaul Trainav0.0.2 Wed Oct 12 20:56:37 PDT 1994 3118cf6c252SPaul Traina 3128cf6c252SPaul Traina- Implement timeout in the dlpi pcap_open_live(). Thanks to Richard 3138cf6c252SPaul Traina Stevens. 3148cf6c252SPaul Traina 3158cf6c252SPaul Traina- Determine pcap link type from dlpi media type. Resulted from report 3168cf6c252SPaul Traina by Mahesh Jethanandani (mahesh@npix.com). 3178cf6c252SPaul Traina 3188cf6c252SPaul Trainav0.0.1 Fri Jun 24 14:50:57 PDT 1994 3198cf6c252SPaul Traina 3208cf6c252SPaul Traina- Fixed bug in nit_setflags() in pcap-snit.c. The streams ioctl timeout 3218cf6c252SPaul Traina wasn't being initialized sometimes resulting in an "NIOCSFLAGS: 3228cf6c252SPaul Traina Invalid argument" error under OSF/1. Reported by Matt Day 3238cf6c252SPaul Traina (mday@artisoft.com) and Danny Mitzel (dmitzel@whitney.hitc.com). 3248cf6c252SPaul Traina 3258cf6c252SPaul Traina- Turn on FDDI support by default. 3268cf6c252SPaul Traina 3278cf6c252SPaul Trainav0.0 Mon Jun 20 19:20:16 PDT 1994 3288cf6c252SPaul Traina 3298cf6c252SPaul Traina- Initial release. 3308cf6c252SPaul Traina 3318cf6c252SPaul Traina- Fixed bug with greater/less keywords, reported by Mark Andrews 3328cf6c252SPaul Traina (mandrews@alias.com). 3338cf6c252SPaul Traina 3348cf6c252SPaul Traina- Fix bug where '|' was defined as BPF_AND instead of BPF_OR, reported 3358cf6c252SPaul Traina by Elan Amir (elan@leeb.cs.berkeley.edu). 3368cf6c252SPaul Traina 3378cf6c252SPaul Traina- Machines with little-endian byte ordering are supported thanks to 3388cf6c252SPaul Traina Jeff Mogul. 3398cf6c252SPaul Traina 3408cf6c252SPaul Traina- Add hack for version 2.3 savefiles which don't have caplen and len 3418cf6c252SPaul Traina swapped thanks to Vern Paxson. 3428cf6c252SPaul Traina 3438cf6c252SPaul Traina- Added "&&" and "||" aliases for "and" and "or" thanks to Vern Paxson. 3448cf6c252SPaul Traina 3458cf6c252SPaul Traina- Added length, inbound and outbound keywords. 346