Top Banner
wireless configuration – cfg80211 and nl80211 Johannes Berg 2007-01-20 2007-01-20 – Johannes Berg 1
27

80211 Config

Apr 28, 2015

Download

Documents

akozy

802.11 config
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 80211 Config

wireless configuration – cfg80211 and nl80211

Johannes Berg

2007-01-20

2007-01-20 – Johannes Berg 1

Page 2: 80211 Config

Overview

1 cfg80211 – driver interface

2 userspace interface: nl80211

3 userspace interface: wext compatibility

4 userspace

5 future

2007-01-20 – Johannes Berg 2

Page 3: 80211 Config

cfg80211 – driver interface

Current status

• defined in include/net/cfg80211.h

• cfg80211 register/unregister with priv pointer

• struct cfg80211 ops for operations on the device

• virtual device support, identified by struct net device

• clearly defined commands, each with very limited scope

2007-01-20 – Johannes Berg 3

Page 4: 80211 Config

cfg80211 – driver interface

Current status

• defined in include/net/cfg80211.h

• cfg80211 register/unregister with priv pointer

• struct cfg80211 ops for operations on the device

• virtual device support, identified by struct net device

• clearly defined commands, each with very limited scope

2007-01-20 – Johannes Berg 3

Page 5: 80211 Config

cfg80211 – driver interface

Current status

• defined in include/net/cfg80211.h

• cfg80211 register/unregister with priv pointer

• struct cfg80211 ops for operations on the device

• virtual device support, identified by struct net device

• clearly defined commands, each with very limited scope

2007-01-20 – Johannes Berg 3

Page 6: 80211 Config

cfg80211 – driver interface

Current status

• defined in include/net/cfg80211.h

• cfg80211 register/unregister with priv pointer

• struct cfg80211 ops for operations on the device

• virtual device support, identified by struct net device

• clearly defined commands, each with very limited scope

2007-01-20 – Johannes Berg 3

Page 7: 80211 Config

cfg80211 – driver interface

Operations

• all regular operations like scanning etc.

• bookkeeping: list interfaces

2007-01-20 – Johannes Berg 4

Page 8: 80211 Config

cfg80211 – driver interface

Operations

• all regular operations like scanning etc.

• bookkeeping: list interfaces

2007-01-20 – Johannes Berg 4

Page 9: 80211 Config

userspace interface: nl80211

Current status

• based on genetlink

• userspace ABI in include/linux/nl80211.h

• code in net/wireless/nl80211.c

2007-01-20 – Johannes Berg 5

Page 10: 80211 Config

userspace interface: nl80211

Current status

• based on genetlink

• userspace ABI in include/linux/nl80211.h

• code in net/wireless/nl80211.c

2007-01-20 – Johannes Berg 5

Page 11: 80211 Config

userspace interface: nl80211

Current status

• based on genetlink

• userspace ABI in include/linux/nl80211.h

• code in net/wireless/nl80211.c

2007-01-20 – Johannes Berg 5

Page 12: 80211 Config

userspace interface: nl80211

Some details

• most operations are commands taking a single argument

• some MLME attributes are grouped together to allowconfiguring fullMAC cards in one step

2007-01-20 – Johannes Berg 6

Page 13: 80211 Config

userspace interface: nl80211

Some details

• most operations are commands taking a single argument

• some MLME attributes are grouped together to allowconfiguring fullMAC cards in one step

2007-01-20 – Johannes Berg 6

Page 14: 80211 Config

userspace interface: wext compatibility

• drivers should just implement cfg80211

• the compat layer will thunk wext calls into cfg80211

• currently both coexist

• to allow moving over gradually, a single driver can implementboth wext and cfg80211

2007-01-20 – Johannes Berg 7

Page 15: 80211 Config

userspace interface: wext compatibility

• drivers should just implement cfg80211

• the compat layer will thunk wext calls into cfg80211

• currently both coexist

• to allow moving over gradually, a single driver can implementboth wext and cfg80211

2007-01-20 – Johannes Berg 7

Page 16: 80211 Config

userspace interface: wext compatibility

• drivers should just implement cfg80211

• the compat layer will thunk wext calls into cfg80211

• currently both coexist

• to allow moving over gradually, a single driver can implementboth wext and cfg80211

2007-01-20 – Johannes Berg 7

Page 17: 80211 Config

userspace interface: wext compatibility

• drivers should just implement cfg80211

• the compat layer will thunk wext calls into cfg80211

• currently both coexist

• to allow moving over gradually, a single driver can implementboth wext and cfg80211

2007-01-20 – Johannes Berg 7

Page 18: 80211 Config

userspace

• no userspace program exists yet

• libnl needs to be extended

• once that is done, the netlink interface will be simple to use

• discussion item: userspace MLME access

2007-01-20 – Johannes Berg 8

Page 19: 80211 Config

userspace

• no userspace program exists yet

• libnl needs to be extended

• once that is done, the netlink interface will be simple to use

• discussion item: userspace MLME access

2007-01-20 – Johannes Berg 8

Page 20: 80211 Config

userspace

• no userspace program exists yet

• libnl needs to be extended

• once that is done, the netlink interface will be simple to use

• discussion item: userspace MLME access

2007-01-20 – Johannes Berg 8

Page 21: 80211 Config

userspace

• no userspace program exists yet

• libnl needs to be extended

• once that is done, the netlink interface will be simple to use

• discussion item: userspace MLME access

2007-01-20 – Johannes Berg 8

Page 22: 80211 Config

future

• 802.11w is upcoming and we will want a userspace MLME

• cfg80211/nl80211 will provide access to the MAC for theuserspace MLME

• cfg80211/nl80211 also needs to provide MLME access forfull-MAC cards

• need to define notification

2007-01-20 – Johannes Berg 9

Page 23: 80211 Config

future

• 802.11w is upcoming and we will want a userspace MLME

• cfg80211/nl80211 will provide access to the MAC for theuserspace MLME

• cfg80211/nl80211 also needs to provide MLME access forfull-MAC cards

• need to define notification

2007-01-20 – Johannes Berg 9

Page 24: 80211 Config

future

• 802.11w is upcoming and we will want a userspace MLME

• cfg80211/nl80211 will provide access to the MAC for theuserspace MLME

• cfg80211/nl80211 also needs to provide MLME access forfull-MAC cards

• need to define notification

2007-01-20 – Johannes Berg 9

Page 25: 80211 Config

future

• 802.11w is upcoming and we will want a userspace MLME

• cfg80211/nl80211 will provide access to the MAC for theuserspace MLME

• cfg80211/nl80211 also needs to provide MLME access forfull-MAC cards

• need to define notification

2007-01-20 – Johannes Berg 9

Page 26: 80211 Config

future

discussion item

I believe that we need a way to transparently access the MLME.

Should this be a userspace library or should the kernel arbitrate?

userspace pro:

• no kernel/userspace transistion necessary

kernel pro:

• nl80211 can be used – kernel just forwards messages toregistered userspace MLME

2007-01-20 – Johannes Berg 10

Page 27: 80211 Config

Thank you for your attention

2007-01-20 – Johannes Berg 11