1. 10 11月, 2005 4 次提交
    • T
      [NETLINK]: Generic netlink family · 482a8524
      Thomas Graf 提交于
      The generic netlink family builds on top of netlink and provides
      simplifies access for the less demanding netlink users. It solves
      the problem of protocol numbers running out by introducing a so
      called controller taking care of id management and name resolving.
      
      Generic netlink modules register themself after filling out their
      id card (struct genl_family), after successful registration the
      modules are able to register callbacks to command numbers by
      filling out a struct genl_ops and calling genl_register_op(). The
      registered callbacks are invoked with attributes parsed making
      life of simple modules a lot easier.
      
      Although generic netlink modules can request static identifiers,
      it is recommended to use GENL_ID_GENERATE and to let the controller
      assign a unique identifier to the module. Userspace applications
      will then ask the controller and lookup the idenfier by the module
      name.
      
      Due to the current multicast implementation of netlink, the number
      of generic netlink modules is restricted to 1024 to avoid wasting
      memory for the per socket multiacst subscription bitmask.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      482a8524
    • T
      [NETLINK]: Type-safe netlink messages/attributes interface · bfa83a9e
      Thomas Graf 提交于
      Introduces a new type-safe interface for netlink message and
      attributes handling. The interface is fully binary compatible
      with the old interface towards userspace. Besides type safety,
      this interface features attribute validation capabilities,
      simplified message contstruction, and documentation.
      
      The resulting netlink code should be smaller, less error prone
      and easier to understand.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bfa83a9e
    • Y
      [NETFILTER]: Add nf_conntrack subsystem. · 9fb9cbb1
      Yasuyuki Kozakai 提交于
      The existing connection tracking subsystem in netfilter can only
      handle ipv4.  There were basically two choices present to add
      connection tracking support for ipv6.  We could either duplicate all
      of the ipv4 connection tracking code into an ipv6 counterpart, or (the
      choice taken by these patches) we could design a generic layer that
      could handle both ipv4 and ipv6 and thus requiring only one sub-protocol
      (TCP, UDP, etc.) connection tracking helper module to be written.
      
      In fact nf_conntrack is capable of working with any layer 3
      protocol.
      
      The existing ipv4 specific conntrack code could also not deal
      with the pecularities of doing connection tracking on ipv6,
      which is also cured here.  For example, these issues include:
      
      1) ICMPv6 handling, which is used for neighbour discovery in
         ipv6 thus some messages such as these should not participate
         in connection tracking since effectively they are like ARP
         messages
      
      2) fragmentation must be handled differently in ipv6, because
         the simplistic "defrag, connection track and NAT, refrag"
         (which the existing ipv4 connection tracking does) approach simply
         isn't feasible in ipv6
      
      3) ipv6 extension header parsing must occur at the correct spots
         before and after connection tracking decisions, and there were
         no provisions for this in the existing connection tracking
         design
      
      4) ipv6 has no need for stateful NAT
      
      The ipv4 specific conntrack layer is kept around, until all of
      the ipv4 specific conntrack helpers are ported over to nf_conntrack
      and it is feature complete.  Once that occurs, the old conntrack
      stuff will get placed into the feature-removal-schedule and we will
      fully kill it off 6 months later.
      Signed-off-by: NYasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
      Signed-off-by: NHarald Welte <laforge@netfilter.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      9fb9cbb1
    • H
      [NETFILTER] nfnetlink: nfattr_parse() can never fail, make it void · a2506c04
      Harald Welte 提交于
      nfattr_parse (and thus nfattr_parse_nested) always returns success. So we
      can make them 'void' and remove all the checking at the caller side.
      
      Based on original patch by Pablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: NHarald Welte <laforge@netfilter.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2506c04
  2. 09 11月, 2005 35 次提交
  3. 08 11月, 2005 1 次提交
    • A
      [PATCH] kill include/linux/eeprom.h · 48888cc6
      Adrian Bunk 提交于
      This patch kills include/linux/eeprom.h .
      
      Rationale:
      - it was only used by one single driver
      - even this driver didn't do anything useful with it
      - most of this file are non-inline and non-static functions (sic)
      
      This removes include/linux/eeprom.h and cleans drivers/net/ns83820.c up.
      
      If you think eeprom.h should be used more extensively, please consider:
      - the code has to be moved from the header file to a .c file
      - the currently empty write function has to be implemented
      - ns83820.c or any other driver should actually use it
      
      Noone did any of these during the more than 3 years eeprom.h already
      exists...
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      48888cc6