11 Oct, 2007

40 commits

  • Signed-off-by: Jesse Huang
    Signed-off-by: Stefan Lippers-Hollmann
    Signed-off-by: Francois Romieu
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Francois Romieu
     
  • ADD-IP spec requires AUTH. It is, in fact, dangerous without AUTH.
    So, disable ADD-IP functionality if the peer claims to support
    ADD-IP, but not AUTH.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Add SCTP-AUTH API. The API implemented here was
    agreed to between implementors at the 9th SCTP Interop.
    It will be documented in the next revision of the
    SCTP socket API spec.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • This patch implements the receive path needed to process authenticated
    chunks. Add ability to process the AUTH chunk and handle edge cases
    for authenticated COOKIE-ECHO as well.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • SCTP-AUTH, Section 6.2:

    Endpoints MUST send all requested chunks authenticated where this has
    been requested by the peer. The other chunks MAY be sent
    authenticated or not. If endpoint pair shared keys are used, one of
    them MUST be selected for authentication.

    To send chunks in an authenticated way, the sender MUST include these
    chunks after an AUTH chunk. This means that a sender MUST bundle
    chunks in order to authenticate them.

    If the endpoint has no endpoint pair shared key for the peer, it MUST
    use Shared Key Identifier 0 with an empty endpoint pair shared key.
    If there are multiple endpoint shared keys the sender selects one and
    uses the corresponding Shared Key Identifier

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Implement processing for the CHUNKS, RANDOM, and HMAC parameters and
    deal with how this parameters are effected by association restarts.
    In particular, during unexpeted INIT processing, we need to reply with
    parameters from the original INIT chunk. Also, after restart, we need
    to update the old association with new peer parameters and change the
    association shared keys.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • The patch initializes AUTH related members of the generic SCTP
    structures and provides a way to enable/disable auth extension.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • This patch implements the internals operations of the AUTH, such as
    key computation and storage. It also adds necessary variables to
    the SCTP data structures.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Background: RFC 4293 deprecates existing individual, named ICMP
    type counters to be replaced with the ICMPMsgStatsTable. This table
    includes entries for both IPv4 and IPv6, and requires counting of all
    ICMP types, whether or not the machine implements the type.

    These patches "remove" (but not really) the existing counters, and
    replace them with the ICMPMsgStats tables for v4 and v6.
    It includes the named counters in the /proc places they were, but gets the
    values for them from the new tables. It also counts packets generated
    from raw socket output (e.g., OutEchoes, MLD queries, RA's from
    radvd, etc).

    Changes:
    1) create icmpmsg_statistics mib
    2) create icmpv6msg_statistics mib
    3) modify existing counters to use these
    4) modify /proc/net/snmp to add "IcmpMsg" with all ICMP types
    listed by number for easy SNMP parsing
    5) modify /proc/net/snmp printing for "Icmp" to get the named data
    from new counters.

    Signed-off-by: David L Stevens
    Signed-off-by: David S. Miller

    David L Stevens
     
  • Background: RFC 4293 deprecates existing individual, named ICMP
    type counters to be replaced with the ICMPMsgStatsTable. This table
    includes entries for both IPv4 and IPv6, and requires counting of all
    ICMP types, whether or not the machine implements the type.

    These patches "remove" (but not really) the existing counters, and
    replace them with the ICMPMsgStats tables for v4 and v6.
    It includes the named counters in the /proc places they were, but gets the
    values for them from the new tables. It also counts packets generated
    from raw socket output (e.g., OutEchoes, MLD queries, RA's from
    radvd, etc).

    Changes:
    1) create icmpmsg_statistics mib
    2) create icmpv6msg_statistics mib
    3) modify existing counters to use these
    4) modify /proc/net/snmp to add "IcmpMsg" with all ICMP types
    listed by number for easy SNMP parsing
    5) modify /proc/net/snmp printing for "Icmp" to get the named data
    from new counters.
    [new to 2nd revision]
    6) support per-interface ICMP stats
    7) use common macro for per-device stat macros

    Signed-off-by: David L Stevens
    Signed-off-by: David S. Miller

    David L Stevens
     
  • Signed-off-by: Denis Cheng

    Denis Cheng
     
  • Signed-off-by: Denis Cheng
    Signed-off-by: David S. Miller

    Denis Cheng
     
  • with the macro max provided by , so changed its name
    to a more proper one: limit

    Signed-off-by: Denis Cheng
    Signed-off-by: David S. Miller

    Denis Cheng
     
  • Signed-off-by: Denis Cheng
    Signed-off-by: David S. Miller

    Denis Cheng
     
  • Thanks for noticing the bug where csum_start is not updated
    when the head room changes.

    This patch fixes that. It also moves the csum/ip_summed
    copying into copy_skb_header so that skb_copy_expand gets
    it too. I've checked its callers and no one should be upset
    by this.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • I was looking at Patrick's fix to inet_diag and it occured
    to me that we're using a pointer argument to return values
    unnecessarily in netlink_run_queue. Changing it to return
    the value will allow the compiler to generate better code
    since the value won't have to be memory-backed.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • The sctp_[rw]mem definitions should really be in protocol.c
    since that is where they are initialized. This also allows
    one to build a kernel without sysctl support.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • SCTP Supported Extenions parameter is specified in Section 4.2.7
    of the ADD-IP draft (soon to be RFC). The parameter is
    encoded as:

    0 1 2 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Parameter Type = 0x8008 | Parameter Length |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | CHUNK TYPE 1 | CHUNK TYPE 2 | CHUNK TYPE 3 | CHUNK TYPE 4 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | .... |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | CHUNK TYPE N | PAD | PAD | PAD |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    It contains a list of chunks that a particular SCTP extension
    uses. Current extensions supported are Partial Reliability
    (FWD-TSN) and ADD-IP (ASCONF and ASCONF-ACK).

    When implementing new extensions (AUTH, PKT-DROP, etc..), new
    chunks need to be added to this parameter. Parameter processing
    would be modified to negotiate support for these new features.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • This patch slightly cleanups FIB rules framework. rules_list as a pointer
    on struct fib_rules_ops is useless. It is always assigned with a static
    per/subsystem list in IPv4, IPv6 and DecNet.

    Signed-off-by: Denis V. Lunev
    Acked-by: Alexey Kuznetsov
    Signed-off-by: David S. Miller

    Denis V. Lunev
     
  • The call_netdev_notifiers routine can successfully be used in
    the net/core_dev.c itself.

    This will save 6 lines of code and 62 ;) bytes of .text section.

    62 is rather small, but I have one more patch saving ~30 bytes
    from netns code (sent to Eric), so altogether they can save
    some more noticeable amount.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The dev_name_hash and the dev_index_hash are now booth kmalloc-ed
    (and each element is properly initialized as usually) so I think
    it's worth consolidating this code making it look nicer (and
    saving 28 bytes of .text section ;) )

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • This replaces the void * parameter with a struct net_device * which
    is what is actually required.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • HARD_TX_LOCK micro is a nice aggregation that could be used
    in other spots. move it to netdevice.h
    Also makes sure the previously superflous cpu arguement is used.
    Thanks to DaveM for the suggestions.

    Signed-off-by: Jamal Hadi Salim
    Signed-off-by: David S. Miller

    Jamal Hadi Salim
     
  • Signed-off-by: David S. Miller

    Ed Swierk
     
  • Remove useless message. We get the right message from another
    subsystem.

    Signed-off-by: Milan Kocian
    Signed-off-by: David S. Miller

    Milan Kocian
     
  • The bulk of the CIPSO option parsing/processing in the cipso_v4_sock_getattr()
    and cipso_v4_skb_getattr() functions are identical, the only real difference
    being where the functions obtain the CIPSO option itself. This patch creates
    a new function, cipso_v4_getattr(), which contains the common CIPSO option
    parsing/processing code and modifies the existing functions to call this new
    helper function.

    Signed-off-by: Paul Moore
    Signed-off-by: David S. Miller

    Paul Moore
     
  • For the operations
    get-tx-csum
    get-sg
    get-tso
    get-ufo
    the default ethtool_op_xxx behavior is fine for all drivers, so we
    permit op==NULL to imply the default behavior.

    This provides a more uniform behavior across all drivers, eliminating
    ethtool(8) "ioctl not supported" errors on older drivers that had
    not been updated for the latest sub-ioctls.

    The ethtool_op_xxx() functions are left exported, in case anyone
    wishes to call them directly from a driver-private implementation --
    a not-uncommon case. Should an ethtool_op_xxx() helper remain unused
    for a while, except by net/core/ethtool.c, we can un-export it at a
    later date.

    [ Resolved conflicts with set/get value ethtool patch... -DaveM ]

    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Jeff Garzik
     
  • We now have struct net_device_stats embedded in struct net_device,
    and the default ->get_stats() hook does the obvious thing for us.

    Run through drivers/net/* and remove the driver-local storage of
    statistics, and driver-local ->get_stats() hook where applicable.

    This was just the low-hanging fruit in drivers/net; plenty more drivers
    remain to be updated.

    [ Resolved conflicts with napi_struct changes and fix sunqe build
    regression... -DaveM ]

    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Jeff Garzik
     
  • Signed-off-by: Denis Cheng
    Signed-off-by: Jeff Garzik

    Denis Cheng
     
  • It's been a useless no-op for long enough in 2.6 so I figured it's time to
    remove it. The number of people that could object because they're
    maintaining unified 2.4 and 2.6 drivers is probably rather small.

    [ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • - Code Optimization of s2io_isr function.
    - Isr check using per device napi variable instead of driver global.
    - Reduced from 3 to 1 if condition before check for processing packet receive
    packets.
    - Implemented Jeff's comment to use synchronize_irq. Removed the isr_cnt
    variable as it became redundant.
    - One time de assert the interrupts by writing all F's to the general_int_mask
    register instead of de asserting by clearing the source of interrupts with
    multiple writes which causes loss of interrupts (race conditions). It is
    entirely possible that before the driver has a chance to mask the asserted
    alarm bit, another alarm/traffic interrupt bit gets asserted as well. In
    this case Herc will keep the INTA line asserted and the bridge will not
    send a new Assert_INTA message upstream.

    [ Resolved conflicts due to napi_struct changes... -DaveM ]

    Signed-off-by: Sivakumar Subramani
    Signed-off-by: Santosh Rastapur
    Signed-off-by: Ramkrishna Vepa
    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Sivakumar Subramani
     
  • - Added check to return from the traffic handling function, if the card status
    is DOWN.
    - Implemented Jeff's comments on incorrect return value in s2io_poll function.

    Signed-off-by: Sivakumar Subramani
    Signed-off-by: Santosh Rastapur
    Signed-off-by: Ramkrishna Vepa
    Signed-off-by: Jeff Garzik

    Sivakumar Subramani
     
  • - Removed the unused variable, intr_type, in device private structure.

    [ Resolve conflicts with napi_struct changes... -DaveM ]

    Signed-off-by: Sivakumar Subramani
    Signed-off-by: Santosh Rastapur
    Signed-off-by: Ramkrishna Vepa
    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Sivakumar Subramani
     
  • - Added support to poll entire set of device errors and alarams.
    - A note on how device errors and alarms are handled:
    - The adapter will automatically recover from uncorrectable ECC errors.
    Packets containing corrupted data will be dropped (not transmitted) or tagged
    as invalid before being passed to the host.
    - The adapter cannot recover from any internal state machine errors. A state
    machine error requires a device reset.
    - Any internal error that could potentially result in .store trampling.
    (undesirable PCI behaviour)is tagged as a "serious error". In such cases
    the adapter will give up its ability to be a bus master. In this situation
    the host will still be able to read internal device registers in order to
    generate an error report. A device reset is necessary to return to normal
    operation.
    - In the event of a pcix data parity error, the adapter will automatically
    disable itself. Adapter_En will automatically transition from '1' to '0' and
    the adapter will enter its clean-up routine. Once the device has achieved
    quiescence, an adapter reset should be performed.
    - Replaced alarm_intr_handler() with s2io_handle_errors().
    - Added statistic counters to monitor the alarms.

    [ Fix warnings wrt. do_s2io_chk_alarm_bit(), Callers pass in an
    "unsigned long long *" but the function takes a "u64 *" which is
    different on many 64-bit platforms. -DaveM ]

    Signed-off-by: Sivakumar Subramani
    Signed-off-by: Santosh Rastapur
    Signed-off-by: Ramkrishna Vepa
    Signed-off-by: Jeff Garzik

    Sivakumar Subramani
     
  • - Added support to unmask entire set of device errors and alarams.
    Alarm interrupts are generated for a myriad of purposes, ranging from
    illegal operations or requests to internal state machine errors and
    uncorrectable data corruption errors. In several cases the adapter can
    recover gracefully from unexpected events; however, in some cases, a device
    reset may be necessary. This patch handles alarms generated by all the
    blocks within the device.

    The adapter generates the following types of alarms:
    1. Link state transitions (local/remote fault) or other link-related
    problems.
    2. Problems with any device peripherals, including the EEPROM, FLASH,
    etc.
    3. Correctable ECC errors (single-bit errors) on internal data
    structures or frame data.
    4. Uncorrectable ECC errors (multi-bit errors) on internal data
    structures or frame data.
    5. State machine errors, which indicate that internal control
    structures have become corrupted.
    6. PCI related errors, including parity errors or illegal transactions.
    7. Other unexpected events.

    - Implemented Jeff's review comments to use do_s2io_write_bits function to avoid
    duplicate codes.

    Signed-off-by: Sivakumar Subramani
    Signed-off-by: Santosh Rastapur
    Signed-off-by: Ramkrishna Vepa
    Signed-off-by: Jeff Garzik

    Sivakumar Subramani
     
  • remove setup platform device from jazzsonic, which is done in arch code now

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Jeff Garzik

    Thomas Bogendoerfer
     
  • The sgiseeq driver is one of the few remaining users of the ancient
    cache banging DMA API. Replaced with the modern days DMA API.

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • The new microcode engine version is set to 1.1.0

    Signed-off-by: Divy Le Ray
    Signed-off-by: Jeff Garzik

    Divy Le Ray
     
  • add driver recognition for T3C rev board.

    Signed-off-by: Divy Le Ray
    Signed-off-by: Jeff Garzik

    Divy Le Ray