• Pedro Tammela's avatar
    net/sched: act_sample: fix action bind logic · 4a20056a
    Pedro Tammela authored
    The TC architecture allows filters and actions to be created independently.
    In filters the user can reference action objects using:
    tc action add action sample ... index 1
    tc filter add ... action pedit index 1
    
    In the current code for act_sample this is broken as it checks netlink
    attributes for create/update before actually checking if we are binding to an
    existing action.
    
    tdc results:
    1..29
    ok 1 9784 - Add valid sample action with mandatory arguments
    ok 2 5c91 - Add valid sample action with mandatory arguments and continue control action
    ok 3 334b - Add valid sample action with mandatory arguments and drop control action
    ok 4 da69 - Add valid sample action with mandatory arguments and reclassify control action
    ok 5 13ce - Add valid sample action with mandatory arguments and pipe control action
    ok 6 1886 - Add valid sample action with mandatory arguments and jump control action
    ok 7 7571 - Add sample action with invalid rate
    ok 8 b6d4 - Add sample action with mandatory arguments and invalid control action
    ok 9 a874 - Add invalid sample action without mandatory arguments
    ok 10 ac01 - Add invalid sample action without mandatory argument rate
    ok 11 4203 - Add invalid sample action without mandatory argument group
    ok 12 14a7 - Add invalid sample action without mandatory argument group
    ok 13 8f2e - Add valid sample action with trunc argument
    ok 14 45f8 - Add sample action with maximum rate argument
    ok 15 ad0c - Add sample action with maximum trunc argument
    ok 16 83a9 - Add sample action with maximum group argument
    ok 17 ed27 - Add sample action with invalid rate argument
    ok 18 2eae - Add sample action with invalid group argument
    ok 19 6ff3 - Add sample action with invalid trunc size
    ok 20 2b2a - Add sample action with invalid index
    ok 21 dee2 - Add sample action with maximum allowed index
    ok 22 560e - Add sample action with cookie
    ok 23 704a - Replace existing sample action with new rate argument
    ok 24 60eb - Replace existing sample action with new group argument
    ok 25 2cce - Replace existing sample action with new trunc argument
    ok 26 59d1 - Replace existing sample action with new control argument
    ok 27 0a6e - Replace sample action with invalid goto chain control
    ok 28 3872 - Delete sample action with valid index
    ok 29 a394 - Delete sample action with invalid index
    
    Fixes: 5c5670fa ("net/sched: Introduce sample tc action")
    Reviewed-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: default avatarPedro Tammela <pctammela@mojatatu.com>
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4a20056a
act_sample.c 8.96 KB