09 Sep, 2010

1 commit


14 Apr, 2010

2 commits

  • This patch adds support for multiple independant multicast routing instances,
    named "tables".

    Userspace multicast routing daemons can bind to a specific table instance by
    issuing a setsockopt call using a new option MRT_TABLE. The table number is
    stored in the raw socket data and affects all following ipmr setsockopt(),
    getsockopt() and ioctl() calls. By default, a single table (RT_TABLE_DEFAULT)
    is created with a default routing rule pointing to it. Newly created pimreg
    devices have the table number appended ("pimregX"), with the exception of
    devices created in the default table, which are named just "pimreg" for
    compatibility reasons.

    Packets are directed to a specific table instance using routing rules,
    similar to how regular routing rules work. Currently iif, oif and mark
    are supported as keys, source and destination addresses could be supported
    additionally.

    Example usage:

    - bind pimd/xorp/... to a specific table:

    uint32_t table = 123;
    setsockopt(fd, IPPROTO_IP, MRT_TABLE, &table, sizeof(table));

    - create routing rules directing packets to the new table:

    # ip mrule add iif eth0 lookup 123
    # ip mrule add oif eth0 lookup 123

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • A following patch will use struct raw_sock to store state for ipmr,
    so having the definitions in icmp.h doesn't fit very well anymore.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

23 Mar, 2008

1 commit

  • Sorry for the patch sequence confusion :| but I found that the similar
    thing can be done for raw sockets easily too late.

    Expand the proto.h union with the raw_hashinfo member and use it in
    raw_prot and rawv6_prot. This allows to drop the protocol specific
    versions of hash and unhash callbacks.

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

    Pavel Emelyanov
     

01 Feb, 2008

2 commits


29 Jan, 2008

6 commits

  • Pull the struct net pointer up to the showing functions
    to filter the sockets depending on their namespaces.

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

    Pavel Emelyanov
     
  • Both ipv6/raw.c and ipv4/raw.c use the seq files to walk
    through the raw sockets hash and show them.

    The "walking" code is rather huge, but is identical in both
    cases. The difference is the hash table to walk over and
    the protocol family to check (this was not in the first
    virsion of the patch, which was noticed by YOSHIFUJI)

    Make the ->open store the needed hash table and the family
    on the allocated raw_iter_state and make the start/next/stop
    callbacks work with it.

    This removes most of the code.

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

    Pavel Emelyanov
     
  • Same as the ->hash one, this is easily consolidated.

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

    Pavel Emelyanov
     
  • Having the raw_hashinfo it's easy to consolidate the
    raw[46]_hash functions.

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

    Pavel Emelyanov
     
  • The ipv4/raw.c and ipv6/raw.c contain many common code (most
    of which is proc interface) which can be consolidated.

    Most of the places to consolidate deal with the raw sockets
    hashtable, so introduce a struct raw_hashinfo which describes
    the raw sockets hash.

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

    Pavel Emelyanov
     
  • The raw sockets functions are explicitly used from
    inside the kernel in two places:

    1. in ip_local_deliver_finish to intercept skb-s
    2. in icmp_error

    For this purposes many functions and even data structures,
    that are naturally internal for raw protocol, are exported.

    Compact the API to two functions and hide all the other
    (including hash table and rwlock) inside the net/ipv4/raw.c

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

    Pavel Emelyanov
     

21 Jun, 2006

1 commit

  • * git://git.infradead.org/hdrcleanup-2.6: (63 commits)
    [S390] __FD_foo definitions.
    Switch to __s32 types in joystick.h instead of C99 types for consistency.
    Add to headers included for userspace in
    Move inclusion of out of user scope in asm-x86_64/mtrr.h
    Remove struct fddi_statistics from user view in
    Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390
    Revert include/media changes: Mauro says those ioctls are only used in-kernel(!)
    Include and use __uXX types in
    Use __uXX types in , include too
    Remove private struct dx_hash_info from public view in
    Include and use __uXX types in
    Use __uXX types in for struct divert_blk et al.
    Use __u32 for elf_addr_t in , not u32. It's user-visible.
    Remove PPP_FCS from user view in , remove __P mess entirely
    Use __uXX types in user-visible structures in
    Don't use 'u32' in user-visible struct ip_conntrack_old_tuple.
    Use __uXX types for S390 DASD volume label definitions which are user-visible
    S390 BIODASDREADCMB ioctl should use __u64 not u64 type.
    Remove unneeded inclusion of from
    Fix private integer types used in V4L2 ioctls.
    ...

    Manually resolve conflict in include/linux/mtd/physmap.h

    Linus Torvalds
     

18 Jun, 2006

1 commit


26 Apr, 2006

1 commit


04 Jan, 2006

1 commit


30 Aug, 2005

2 commits


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds