• Kristian Evensen's avatar
    inet_diag: Add equal-operator for ports · bbb6189d
    Kristian Evensen authored
    inet_diag currently provides less/greater than or equal operators for
    comparing ports when filtering sockets. An equal comparison can be
    performed by combining the two existing operators, or a user can for
    example request a port range and then do the final filtering in
    userspace. However, these approaches both have drawbacks. Implementing
    equal using LE/GE causes the size and complexity of a filter to grow
    quickly as the number of ports increase, while it on busy machines would
    be great if the kernel only returns information about relevant sockets.
    
    This patch introduces source and destination port equal operators.
    INET_DIAG_BC_S_EQ is used to match a source port, INET_DIAG_BC_D_EQ a
    destination port, and usage is the same as for the existing port
    operators.  I.e., the port to match is stored in the no-member of the
    next inet_diag_bc_op-struct in the filter.
    Signed-off-by: default avatarKristian Evensen <kristian.evensen@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bbb6189d
inet_diag.c 31.2 KB