]> git.ipfire.org Git - thirdparty/iw.git/log
thirdparty/iw.git
15 years agofix scan show_both_ie_sets
Johannes Berg [Sat, 6 Feb 2010 14:16:29 +0000 (15:16 +0100)] 
fix scan show_both_ie_sets

The undocumented -b parameter for scan [dump] wasn't
honored -- the first bug was not initialising the
struct, and the second one not ever checking the
parameter itself.

15 years agoadd off-channel command
Johannes Berg [Tue, 2 Feb 2010 19:51:42 +0000 (20:51 +0100)] 
add off-channel command

15 years agoprint unknown commands in supported list with number
Johannes Berg [Fri, 29 Jan 2010 13:48:54 +0000 (14:48 +0100)] 
print unknown commands in supported list with number

15 years agoiw: Add support for showing Beacon IEs and TIM IE
Jouni Malinen [Wed, 6 Jan 2010 15:53:59 +0000 (17:53 +0200)] 
iw: Add support for showing Beacon IEs and TIM IE

An undocumented '-b' option can now be used with scan commands
to request the IEs from Beacon frames to be shown in addition to
the Probe Response IEs. TIM IE is parsed so that the DTIM period
is more easily available.

The '-b' option could be made to work with '-u' and get documented
if the command argument parsing were to be somewhat more flexible,
but that is a task for another change..

15 years agoupdate nl80211.h
Johannes Berg [Sat, 16 Jan 2010 20:59:36 +0000 (21:59 +0100)] 
update nl80211.h

15 years agoversion 0.9.19 v0.9.19
Johannes Berg [Mon, 11 Jan 2010 19:27:50 +0000 (20:27 +0100)] 
version 0.9.19

15 years agomake command/section non-const
Johannes Berg [Mon, 11 Jan 2010 19:26:16 +0000 (20:26 +0100)] 
make command/section non-const

It being const seems to be causing problems on ppc64.

15 years agofix WMM indications for parameter printing
Marcel Holtmann [Sun, 20 Dec 2009 03:49:24 +0000 (19:49 -0800)] 
fix WMM indications for parameter printing

15 years agofix another typo
Johannes Berg [Tue, 8 Dec 2009 16:59:07 +0000 (17:59 +0100)] 
fix another typo

15 years agoremove stray \n
Johannes Berg [Tue, 8 Dec 2009 16:17:19 +0000 (17:17 +0100)] 
remove stray \n

15 years agofix ampdu spacing typo by replacing the text
Johannes Berg [Tue, 8 Dec 2009 09:19:51 +0000 (10:19 +0100)] 
fix ampdu spacing typo by replacing the text

15 years agocompletely unify MCS parsing
Johannes Berg [Tue, 8 Dec 2009 09:11:22 +0000 (10:11 +0100)] 
completely unify MCS parsing

Luis left two different ways to parse the MCS set,
one of which was completely endianness broken. Fix
this up by using the correct one in both places.

15 years agoHT fixups
Johannes Berg [Tue, 8 Dec 2009 08:58:20 +0000 (09:58 +0100)] 
HT fixups

15 years agoiw: bring together common ht capability parsing
Luis R. Rodriguez [Tue, 8 Dec 2009 03:05:42 +0000 (22:05 -0500)] 
iw: bring together common ht capability parsing

Both 'iw list' and 'iw dev wlan0 scan' now share the same
HT capability parsing code making them consistent.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
15 years agoiw: share mimumum ampdu spacing and maximum ampdu length prints
Luis R. Rodriguez [Tue, 8 Dec 2009 03:05:18 +0000 (22:05 -0500)] 
iw: share mimumum ampdu spacing and maximum ampdu length prints

This brings together the two separate compuations for ampdu spacing
and length to help being more consistant with terminology and with the
spec.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
15 years agoiw: fix 'iw list' MCS set print
Luis R. Rodriguez [Tue, 8 Dec 2009 02:13:56 +0000 (21:13 -0500)] 
iw: fix 'iw list' MCS set print

The MCS set was being printed backward, fix this and while at it
add a helper to share with scanning.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
15 years agoiw: add HT capability parsing for scanning
Luis R. Rodriguez [Tue, 8 Dec 2009 01:55:25 +0000 (20:55 -0500)] 
iw: add HT capability parsing for scanning

This adds HT capability IE parsing for scanning. You will now
be able to easily review what HT capabilities your AP supports
with a simple iw scan.

Sreenshot of a scan result of a 1-stream AP:

BSS 00:03:7f:12:34:56 (on wlan6)
        TSF: 1817911860 usec (0d, 00:30:17)
        freq: 2427
        beacon interval: 100
        capability: ESS ShortPreamble SpectrumMgmt ShortSlotTime (0x0521)
        signal: -60.00 dBm
        last seen: 11390 ms ago
        SSID: sucia-perra
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
        DS Parameter set: channel 4
        Power constraint: 0 dB
        ERP: <no flags>
        Extended supported rates: 24.0 36.0 48.0 54.0
        HT capabilities:
                Capabilities: 0x010c
                        HT20
                        SM Power Save disabled
                        RX STBC 1-stream
                        Max AMSDU length: 7935 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 1/2 usec (0x02)
                MCS set:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
                Supported RX MCS Indexes:
                        MCS Index 0
                        MCS Index 1
                        MCS Index 2
                        MCS Index 3
                        MCS Index 4
                        MCS Index 5
                        MCS Index 6
                        MCS Index 7
                No TX MCS set defined
        Extended capabilities: HT Information Exchange Supported
        WMM:    * Parameter version 1
                * u-APSD
                * BE: CW 15-1023, AIFSN 3
                * BK: CW 15-1023, AIFSN 7
                * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                * VO: acm CW 3-7, AIFSN 2, TXOP 1504 usec

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
15 years agoparse station event
Johannes Berg [Sun, 6 Dec 2009 17:58:00 +0000 (18:58 +0100)] 
parse station event

when the kernel starts sending new-station events,
iw will be ready to show them

15 years agoversion 0.9.18 v0.9.18
Johannes Berg [Fri, 20 Nov 2009 16:35:56 +0000 (17:35 +0100)] 
version 0.9.18

15 years agodisplay noise level from survey data
Holger Schurig [Wed, 11 Nov 2009 10:36:34 +0000 (11:36 +0100)] 
display noise level from survey data

Sample output:

Survey data from wlan0
        frequency:      2412 MHz
        noise:          -92 dBm

Signed-off-by: Holger Schurig <holgerschurig@gmail.com>
15 years agoimplement rootmode
Rui Paulo [Mon, 9 Nov 2009 12:53:07 +0000 (12:53 +0000)] 
implement rootmode

This introduces a new mesh parameter mesh_hwmp_rootmode to make the
mesh point act as a root node using mesh RANN frames.

Signed-off-by: Rui Paulo <rpaulo@gmail.com>
15 years agofix mesh terminology
Johannes Berg [Mon, 16 Nov 2009 18:51:55 +0000 (19:51 +0100)] 
fix mesh terminology

DSN -> SN

15 years agofix breakage
Johannes Berg [Mon, 16 Nov 2009 18:50:49 +0000 (19:50 +0100)] 
fix breakage

The nl80211.h update broke iw. This is not supposed
to happen, but a commit went into the kernel that
made an API incompatible change.

15 years agoupdate nl80211.h
Johannes Berg [Mon, 16 Nov 2009 18:49:11 +0000 (19:49 +0100)] 
update nl80211.h

15 years agoadd support for showing NL80211_ATTR_SUPPORTED_COMMANDS
Marcel Holtmann [Sat, 14 Nov 2009 19:10:21 +0000 (20:10 +0100)] 
add support for showing NL80211_ATTR_SUPPORTED_COMMANDS

15 years agoprint a header before printing the list of mesh paths
Rui Paulo [Mon, 9 Nov 2009 12:53:06 +0000 (12:53 +0000)] 
print a header before printing the list of mesh paths

Signed-off-by: Rui Paulo <rpaulo@gmail.com>
15 years agoadd trailing \n to fprintfs missing it
Johannes Berg [Wed, 11 Nov 2009 14:18:43 +0000 (15:18 +0100)] 
add trailing \n to fprintfs missing it

(pointer out by Holger)

15 years agoiw: show age of last scan
Holger Schurig [Thu, 24 Sep 2009 09:20:47 +0000 (11:20 +0200)] 
iw: show age of last scan

This shows how old a scan result entry is.

[johannes: fixed to use NL80211_BSS_SEEN_MS_AGO]

15 years agosync nl80211.h
Johannes Berg [Wed, 11 Nov 2009 13:43:06 +0000 (14:43 +0100)] 
sync nl80211.h

15 years agoiw: add support for setting the wds/4-address flag when creating an interface
Felix Fietkau [Wed, 11 Nov 2009 12:20:40 +0000 (13:20 +0100)] 
iw: add support for setting the wds/4-address flag when creating an interface

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
15 years agoiw: add a command for moving a STA into an AP VLAN
Felix Fietkau [Wed, 11 Nov 2009 12:22:23 +0000 (13:22 +0100)] 
iw: add a command for moving a STA into an AP VLAN

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
15 years agoiw: use PKG_CONFIG variable consistently
Johannes Stezenbach [Tue, 10 Nov 2009 17:29:34 +0000 (18:29 +0100)] 
iw: use PKG_CONFIG variable consistently

Use the correct pkg-config version consistently.
Note: For quick&dirty cross compilation I used the following in .config:

PKG_CONFIG = false
NLLIBNAME = libnl-1
LIBS += -L../libnl-1.1/lib -lnl
CFLAGS += -I../libnl-1.1/include
CC := arm-linux-gcc

Signed-off-by: Johannes Stezenbach <js@sig21.net>
15 years agofix fd leak in phy_lookup()
Eric Sesterhenn [Mon, 2 Nov 2009 09:46:38 +0000 (10:46 +0100)] 
fix fd leak in phy_lookup()

15 years agodefault install to $(PREFIX)/sbin
John W. Linville [Wed, 30 Sep 2009 13:19:46 +0000 (09:19 -0400)] 
default install to $(PREFIX)/sbin

The iw utility isn't generally useful to normal users, so move it to
$(PREFIX)/sbin with other system management executables.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoadd netns command
Johannes Berg [Thu, 24 Sep 2009 18:18:47 +0000 (20:18 +0200)] 
add netns command

iw phy#<idx> set netns <pid>

15 years agoupdate nl80211.h
Johannes Berg [Thu, 24 Sep 2009 18:11:42 +0000 (20:11 +0200)] 
update nl80211.h

15 years agoiw: fix NL80211_STA_INFO_PLINK_STATE printing in station dump
Brian Cavagnolo [Thu, 27 Aug 2009 18:15:20 +0000 (11:15 -0700)] 
iw: fix NL80211_STA_INFO_PLINK_STATE printing in station dump

NL80211_STA_INFO_PLINK_STATE is a u8, not a u16.  This bug was causing
unexpected output on big endian machines.

Signed-off-by: Brian Cavagnolo <brian@cozybit.com>
15 years ago0.9.17 v0.9.17
Johannes Berg [Wed, 26 Aug 2009 09:41:41 +0000 (11:41 +0200)] 
0.9.17

15 years agoseparate commands into sections
Johannes Berg [Mon, 24 Aug 2009 10:53:34 +0000 (12:53 +0200)] 
separate commands into sections

The ad-hoc way of parsing the command "tree" didn't
really work out, so separate the commands better
into sections and parse by that.

15 years agodon't emit usage to stderr
Holger Schurig [Mon, 24 Aug 2009 09:17:19 +0000 (11:17 +0200)] 
don't emit usage to stderr

Only write error output to stderr, not help und usage information.
This allows now

  ./iw | less

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
15 years agoalso fix %d -> %u for 'iw link'
Johannes Berg [Mon, 17 Aug 2009 10:51:58 +0000 (12:51 +0200)] 
also fix %d -> %u for 'iw link'

15 years agofix output qualifier for unsigned values
Arnd Hannemann [Mon, 17 Aug 2009 10:46:56 +0000 (12:46 +0200)] 
fix output qualifier for unsigned values

Station XX:XX:XX:XX:XX:XX (on wlan0)
        inactive time:  4 ms
        rx bytes:       -1611945626
        rx packets:     7643414
        tx bytes:       1527923993
        tx packets:     4829428
        signal:         -63 dBm
        tx bitrate:     54.0 MBit/s

Seems to be the output qualifier %d is used wrongly in some cases.
This patch fixes that.

Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de>
16 years ago0.9.16 v0.9.16
Johannes Berg [Sun, 16 Aug 2009 14:03:36 +0000 (16:03 +0200)] 
0.9.16

mostly for the link command

16 years agoRevert "magically set interface up for connect/join"
Johannes Berg [Sun, 16 Aug 2009 14:02:15 +0000 (16:02 +0200)] 
Revert "magically set interface up for connect/join"

This reverts commit ded1f078ef5283e49f1863e9160a6650566c0954.

I decided that doing things magically isn't a good idea.

Conflicts:

iw.h

16 years agomark a key default if none is marked manually
Johannes Berg [Sun, 16 Aug 2009 13:17:38 +0000 (15:17 +0200)] 
mark a key default if none is marked manually

16 years agoadd iw commands for setting fragmentation and rts threshold
Johannes Berg [Tue, 11 Aug 2009 09:26:42 +0000 (11:26 +0200)] 
add iw commands for setting fragmentation and rts threshold

16 years agoiw: fix typos in MCS set parsing code
Gabor Juhos [Tue, 11 Aug 2009 06:47:30 +0000 (08:47 +0200)] 
iw: fix typos in MCS set parsing code

The current code uses wrong binary operator for masking,
and the shift values for the 'tx_max_num_spatial_streams' and
'tx_unequal_modulation' fields are off-by-one.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
16 years agoprint out wmm aifsn
Johannes Berg [Mon, 10 Aug 2009 14:40:51 +0000 (16:40 +0200)] 
print out wmm aifsn

16 years agosome wmm parameter improvements
Johannes Berg [Mon, 10 Aug 2009 13:40:11 +0000 (15:40 +0200)] 
some wmm parameter improvements

16 years agofix typo
Johannes Berg [Mon, 10 Aug 2009 13:37:20 +0000 (15:37 +0200)] 
fix typo

16 years agofix bug parsing ACI
Johannes Berg [Mon, 10 Aug 2009 13:36:37 +0000 (15:36 +0200)] 
fix bug parsing ACI

16 years agoshow WMM parameters
Johannes Berg [Mon, 10 Aug 2009 13:15:49 +0000 (15:15 +0200)] 
show WMM parameters

16 years agoiw: add beacon hint event parsing
Luis R. Rodriguez [Fri, 31 Jul 2009 00:05:50 +0000 (17:05 -0700)] 
iw: add beacon hint event parsing

Here's a screenshot:

mcgrof@pogo ~ $ iw event

mcgrof@pogo ~ $ sudo iw dev wlan0 scan trigger

phy #0: beacon hint:
phy0 5180 MHz [36]:
o active scanning enabled
o beaconing enabled

You'll see this on every channel you find a beacon and a flag
is lifted.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
16 years agoadd warning about screenscraping
Johannes Berg [Thu, 30 Jul 2009 12:12:53 +0000 (14:12 +0200)] 
add warning about screenscraping

16 years agoadd missing newline
Johannes Berg [Wed, 29 Jul 2009 00:05:33 +0000 (02:05 +0200)] 
add missing newline

16 years agoadd link command
Johannes Berg [Sat, 25 Jul 2009 15:31:08 +0000 (17:31 +0200)] 
add link command

16 years agomagically set interface up for connect/join
Johannes Berg [Sat, 11 Jul 2009 09:03:55 +0000 (11:03 +0200)] 
magically set interface up for connect/join

16 years agobump version to 0.9.15 v0.9.15
Johannes Berg [Fri, 10 Jul 2009 20:19:47 +0000 (22:19 +0200)] 
bump version to 0.9.15

release candidate for 1.0 since now we can connect!
(still considering waiting for somebody to implement
'iw wlan1 link' which shows the current connection)

16 years agoprint BSS status
Johannes Berg [Fri, 10 Jul 2009 16:31:59 +0000 (18:31 +0200)] 
print BSS status

16 years agofix a reason string
Johannes Berg [Thu, 9 Jul 2009 21:02:03 +0000 (23:02 +0200)] 
fix a reason string

16 years agomake connect able to wait
Johannes Berg [Wed, 8 Jul 2009 16:53:06 +0000 (18:53 +0200)] 
make connect able to wait

16 years agoremove netns stuff from nl80211.h -- not so soon
Johannes Berg [Wed, 8 Jul 2009 12:55:12 +0000 (14:55 +0200)] 
remove netns stuff from nl80211.h -- not so soon

16 years agomake it possible to pass WEP keys to connect/join
Johannes Berg [Tue, 7 Jul 2009 22:44:25 +0000 (00:44 +0200)] 
make it possible to pass WEP keys to connect/join

16 years agoMerge branch 'master' into connect
Johannes Berg [Tue, 7 Jul 2009 19:37:59 +0000 (21:37 +0200)] 
Merge branch 'master' into connect

16 years agoupdate to experimental nl80211.h
Johannes Berg [Tue, 7 Jul 2009 19:37:34 +0000 (21:37 +0200)] 
update to experimental nl80211.h

16 years agofix phy0 autodetection
Johannes Berg [Tue, 7 Jul 2009 19:37:17 +0000 (21:37 +0200)] 
fix phy0 autodetection

16 years agoMerge branch 'master' into connect
Johannes Berg [Mon, 6 Jul 2009 11:14:54 +0000 (13:14 +0200)] 
Merge branch 'master' into connect

16 years agoadd warning about scripts
Johannes Berg [Mon, 6 Jul 2009 11:14:41 +0000 (13:14 +0200)] 
add warning about scripts

16 years agoMerge branch 'master' into connect
Johannes Berg [Mon, 6 Jul 2009 11:12:09 +0000 (13:12 +0200)] 
Merge branch 'master' into connect

16 years agoautodetect interface/phy
Johannes Berg [Mon, 6 Jul 2009 11:10:39 +0000 (13:10 +0200)] 
autodetect interface/phy

Try to figure out what the user meant and allow users
to enter e.g. 'iw wlan0 info'. This only works if the
interface or phy exists though.

16 years agofix connect help
Johannes Berg [Mon, 6 Jul 2009 10:51:11 +0000 (12:51 +0200)] 
fix connect help

16 years agoMerge branch 'master' into connect
Johannes Berg [Thu, 2 Jul 2009 07:54:25 +0000 (09:54 +0200)] 
Merge branch 'master' into connect

16 years agofix version script to include header and not write file twice
Johannes Berg [Thu, 2 Jul 2009 07:09:13 +0000 (09:09 +0200)] 
fix version script to include header and not write file twice

16 years agoconnect events
Johannes Berg [Thu, 2 Jul 2009 07:54:02 +0000 (09:54 +0200)] 
connect events

16 years agofix version script to include header and not write file twice
Johannes Berg [Thu, 2 Jul 2009 07:09:13 +0000 (09:09 +0200)] 
fix version script to include header and not write file twice

16 years agonote that the bitrates are non-HT
Johannes Berg [Tue, 30 Jun 2009 08:16:43 +0000 (10:16 +0200)] 
note that the bitrates are non-HT

16 years agoupdate nl80211.h
Johannes Berg [Thu, 2 Jul 2009 06:57:16 +0000 (08:57 +0200)] 
update nl80211.h

16 years agonote that the bitrates are non-HT
Johannes Berg [Tue, 30 Jun 2009 08:16:43 +0000 (10:16 +0200)] 
note that the bitrates are non-HT

16 years agoupdate nl80211.h
Johannes Berg [Wed, 24 Jun 2009 11:01:00 +0000 (13:01 +0200)] 
update nl80211.h

16 years agoconnect API test
Johannes Berg [Tue, 23 Jun 2009 15:50:27 +0000 (17:50 +0200)] 
connect API test

16 years agoprint event on scan start
Johannes Berg [Tue, 16 Jun 2009 16:53:21 +0000 (18:53 +0200)] 
print event on scan start

16 years agofix assoc/auth event parsing
Johannes Berg [Wed, 10 Jun 2009 11:55:31 +0000 (13:55 +0200)] 
fix assoc/auth event parsing

16 years ago"AP setup locked" is a u8 (bool)
Johannes Berg [Mon, 8 Jun 2009 10:46:43 +0000 (12:46 +0200)] 
"AP setup locked" is a u8 (bool)

16 years agoprint scan info on event
Johannes Berg [Sun, 24 May 2009 14:48:17 +0000 (16:48 +0200)] 
print scan info on event

16 years agoupdate nl80211.h
Johannes Berg [Wed, 20 May 2009 13:07:40 +0000 (15:07 +0200)] 
update nl80211.h

16 years agosync nl80211.h
Johannes Berg [Wed, 13 May 2009 23:19:34 +0000 (01:19 +0200)] 
sync nl80211.h

16 years agoiw/Makefile use pkg-config if passed from environmental var.
Karl Hiramoto [Wed, 13 May 2009 09:16:18 +0000 (11:16 +0200)] 
iw/Makefile use pkg-config if passed from environmental var.

This patch makes cross compiling easier.

Signed-off-by: Karl Hiramoto <karl@hiramoto.org>
16 years agov0.9.14 v0.9.14
Johannes Berg [Tue, 12 May 2009 22:10:08 +0000 (00:10 +0200)] 
v0.9.14

16 years agofinish docs
Johannes Berg [Tue, 5 May 2009 13:24:39 +0000 (15:24 +0200)] 
finish docs

16 years agomore interface help
Johannes Berg [Tue, 5 May 2009 13:14:52 +0000 (15:14 +0200)] 
more interface help

16 years agohelp for 'set name'
Johannes Berg [Tue, 5 May 2009 13:05:10 +0000 (15:05 +0200)] 
help for 'set name'

16 years agoadd note to set channel/freq
Johannes Berg [Tue, 5 May 2009 13:04:19 +0000 (15:04 +0200)] 
add note to set channel/freq

16 years agoprint version in help output
Johannes Berg [Tue, 5 May 2009 13:02:54 +0000 (15:02 +0200)] 
print version in help output

16 years agodocument scan commands
Johannes Berg [Tue, 5 May 2009 13:00:56 +0000 (15:00 +0200)] 
document scan commands

16 years agoadd help for ibss commands
Johannes Berg [Tue, 5 May 2009 12:56:40 +0000 (14:56 +0200)] 
add help for ibss commands

16 years agoadd help for info/list/phy commands
Johannes Berg [Tue, 5 May 2009 12:56:21 +0000 (14:56 +0200)] 
add help for info/list/phy commands

16 years agoadd ability to document commands, document event/help
Johannes Berg [Tue, 5 May 2009 12:48:16 +0000 (14:48 +0200)] 
add ability to document commands, document event/help

16 years agouse C99 initialiser for cmd struct
Johannes Berg [Tue, 5 May 2009 12:26:25 +0000 (14:26 +0200)] 
use C99 initialiser for cmd struct

16 years agoif command fails, print help for this command
Johannes Berg [Tue, 5 May 2009 12:17:28 +0000 (14:17 +0200)] 
if command fails, print help for this command

16 years agosplit out event handling code
Johannes Berg [Tue, 5 May 2009 12:10:09 +0000 (14:10 +0200)] 
split out event handling code