• O
    can: introduce new raw socket option to join the given CAN filters · a5581ef4
    Oliver Hartkopp 提交于
    The CAN_RAW socket can set multiple CAN identifier specific filters that lead
    to multiple filters in the af_can.c filter processing. These filters are
    indenpendent from each other which leads to logical OR'ed filters when applied.
    
    This socket option joines the given CAN filters in the way that only CAN frames
    are passed to user space that matched *all* given CAN filters. The semantic for
    the applied filters is therefore changed to a logical AND.
    
    This is useful especially when the filterset is a combination of filters where
    the CAN_INV_FILTER flag is set in order to notch single CAN IDs or CAN ID
    ranges from the incoming traffic.
    
    As the raw_rcv() function is executed from NET_RX softirq the introduced
    variables are implemented as per-CPU variables to avoid extensive locking at
    CAN frame reception time.
    Signed-off-by: NOliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
    a5581ef4
raw.c 19.6 KB