On 11/23/18 1:08 PM, Eike Lohmann wrote:
> 
> Hi Arturo,
> 
> thanks for your quick reply.
> 
> Like described in my example, there is no reference to C_TestChain.
> 

I reproduced your steps, and I had multiple issues because your steps
try to delete stuff with external references.

If you don't give me any other information, this is a fail in your
ruleset/workflow a not a bug in nftables.

arturo@endurance:~ $ cat t.nft
#!/usr/sbin/nft -f
# Skeleton for nftables

flush ruleset

table ip filter {
    chain FORWARD {
        type filter hook forward priority 0;
    }
}
arturo@endurance:~ $ cat t2.nft
add chain filter vpn_master
add map filter J_TestMap { type ipv4_addr : verdict ; flags interval ; }
add rule filter vpn_master ip saddr vmap @J_TestMap
add chain filter C_TestChain
add set filter M_TestMasterSet {type ipv4_addr ; flags interval ;
elements={ 172.21.138.0/29 } ;}
add set filter S_TestSlaveSet {type ipv4_addr ; flags interval ;
elements={ 172.21.138.8/29, 172.21.138.16/28, 172.21.138.32/29 } ;}
add element filter J_TestMap { 172.21.138.0/29 : jump C_TestChain }
add element filter J_TestMap { 172.21.138.8/29 : jump C_TestChain }
add element filter J_TestMap { 172.21.138.16/28 : jump C_TestChain }
add element filter J_TestMap { 172.21.138.32/29 : jump C_TestChain }
add rule filter C_TestChain ip saddr @M_TestMasterSet ip daddr
@M_TestMasterSet accept
add rule filter C_TestChain ip saddr @M_TestMasterSet ip daddr
@S_TestSlaveSet accept
add rule filter C_TestChain ip saddr @S_TestSlaveSet ip daddr
@M_TestMasterSet accept

arturo@endurance:~ $ cat t3.nft
flush set filter M_TestMasterSet
flush set filter S_TestSlaveSet
flush map filter J_TestMap
flush chain filter C_TestChain
delete set filter M_TestMasterSet
delete set filter S_TestSlaveSet

arturo@endurance:~ $ sudo nft -f t.nft
arturo@endurance:~ $ sudo nft -f t2.nft
arturo@endurance:~ $ sudo nft -f t3.nft
t3.nft:6:1-34: Error: Could not process rule: Device or resource busy
delete set filter M_TestMasterSet
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
t3.nft:7:1-33: Error: Could not process rule: Device or resource busy
delete set filter S_TestSlaveSet
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
arturo@endurance:~ 1 $ sudo nft list ruleset
table ip filter {
        map J_TestMap {
                type ipv4_addr : verdict
                flags interval
                elements = { 172.21.138.0/29 : jump C_TestChain, 
172.21.138.8/29 :
jump C_TestChain,
                             172.21.138.16/28 : jump C_TestChain, 
172.21.138.32/29 : jump
C_TestChain }
        }

        set M_TestMasterSet {
                type ipv4_addr
                flags interval
                elements = { 172.21.138.0/29 }
        }

        set S_TestSlaveSet {
                type ipv4_addr
                flags interval
                elements = { 172.21.138.8/29, 172.21.138.16/28,
                             172.21.138.32/29 }
        }

        chain FORWARD {
                type filter hook forward priority 0; policy accept;
        }

        chain vpn_master {
                ip saddr vmap @J_TestMap
        }

        chain C_TestChain {
                ip saddr @M_TestMasterSet ip daddr @M_TestMasterSet accept
                ip saddr @M_TestMasterSet ip daddr @S_TestSlaveSet accept
                ip saddr @S_TestSlaveSet ip daddr @M_TestMasterSet accept
        }
}

Reply via email to