(command.CommandList children: [ (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arpresolve_checks_interface_fib>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <arpresolve_checks_interface_fib_head> name: arpresolve_checks_interface_fib_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'arpresolve should check the interface fib, not the default fib, for routes'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <nping>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arpresolve_checks_interface_fib_body> name: arpresolve_checks_interface_fib_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <192.0.2.3>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <192.0.2.0>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1) op: assign_op.Equal rhs: {(DQ <25>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SPOOF_ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SPOOF_ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SPOOF_ADDR='> name:SPOOF_ADDR) op: assign_op.Equal rhs: {(DQ <192.0.2.4>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SPOOF_MAC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SPOOF_MAC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SPOOF_MAC='> name:SPOOF_MAC) op: assign_op.Equal rhs: {(DQ <'00:00:5E:00:53:00'>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [266 288] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <get_epair> more_env: [] words: [{<get_epair>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_iface> more_env: [] words: [ {<setup_iface>} {(DQ ($ Id.VSub_DollarName EPAIRA))} {(DQ ($ Id.VSub_DollarName FIB0))} {<inet>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK0)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_iface> more_env: [] words: [ {<setup_iface>} {(DQ ($ Id.VSub_DollarName EPAIRB))} {(DQ ($ Id.VSub_DollarName FIB1))} {<inet>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {(DQ ($ Id.VSub_DollarName FIB0))} {<nping>} {<-c>} {<1>} {<-e>} {(${ Id.VSub_Name EPAIRA)} {<-S>} {(${ Id.VSub_Name SPOOF_ADDR)} {<--source-mac>} {(${ Id.VSub_Name SPOOF_MAC)} {<--icmp>} {<--icmp-type>} {(DQ <echo-request>)} {<--icmp-code>} {<0>} {<--icmp-id>} {<0xdead>} {<--icmp-seq>} {<1>} {<--data>} {<0xbeef>} {(${ Id.VSub_Name ADDR1)} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <dmesg> more_env: [] words: [{<dmesg>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ <'llinfo.*'> (${ Id.VSub_Name SPOOF_ADDR))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ (${ Id.VSub_Name SPOOF_ADDR) <'.*expires'>)} {<setfib>} {(DQ ($ Id.VSub_DollarName FIB1))} {<arp>} {(${ Id.VSub_Name SPOOF_ADDR)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arpresolve_checks_interface_fib_cleanup> name: arpresolve_checks_interface_fib_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<loopback_and_network_routes_on_nondefault_fib>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <loopback_and_network_routes_on_nondefault_fib_head> name: loopback_and_network_routes_on_nondefault_fib_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'When creating and deleting loopback IPv4 routes, use the interface\'s fib'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <loopback_and_network_routes_on_nondefault_fib_body> name: loopback_and_network_routes_on_nondefault_fib_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <192.0.2.0>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [581 603] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-ne>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Host route did not appear in the correct FIB'>)}] redirects: [] do_fork: T ) ] spids: [677 690] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-eq>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Host route appeared in the wrong FIB'>)}] redirects: [] do_fork: T ) ] spids: [745 758] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<-q>} { (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> (${ Id.VSub_Name TAPD) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-ne>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Network route did not appear in the correct FIB'>)}] redirects: [] do_fork: T ) ] spids: [827 840] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<-q>} { (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> (${ Id.VSub_Name TAPD) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-eq>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Network route appeared in the wrong FIB'>)}] redirects: [] do_fork: T ) ] spids: [904 917] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <loopback_and_network_routes_on_nondefault_fib_cleanup> name: loopback_and_network_routes_on_nondefault_fib_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<loopback_and_network_routes_on_nondefault_fib_inet6>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <loopback_and_network_routes_on_nondefault_fib_inet6_head> name: loopback_and_network_routes_on_nondefault_fib_inet6_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'When creating and deleting loopback IPv6 routes, use the interface\'s fib'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <loopback_and_network_routes_on_nondefault_fib_inet6_body> name: loopback_and_network_routes_on_nondefault_fib_inet6_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR) op: assign_op.Equal rhs: {(DQ <'2001:db8::2'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <'2001:db8::'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <64>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [1043 1065] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet6>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-ne>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Host route did not appear in the correct FIB'>)}] redirects: [] do_fork: T ) ] spids: [1139 1152] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-eq>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Host route appeared in the wrong FIB'>)}] redirects: [] do_fork: T ) ] spids: [1207 1220] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<-q>} { (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> (${ Id.VSub_Name TAPD) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-ne>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Network route did not appear in the correct FIB'>)}] redirects: [] do_fork: T ) ] spids: [1289 1302] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<-q>} { (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> (${ Id.VSub_Name TAPD) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<-eq>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <setfib> more_env: [] words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Network route appeared in the wrong FIB'>)}] redirects: [] do_fork: T ) ] spids: [1366 1379] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <loopback_and_network_routes_on_nondefault_fib_inet6_cleanup> name: loopback_and_network_routes_on_nondefault_fib_inet6_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<default_route_with_multiple_fibs_on_same_subnet>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <default_route_with_multiple_fibs_on_same_subnet_head> name: default_route_with_multiple_fibs_on_same_subnet_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Multiple interfaces on the same subnet but with different fibs can both have default IPv4 routes' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <default_route_with_multiple_fibs_on_same_subnet_body> name: default_route_with_multiple_fibs_on_same_subnet_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <192.0.2.3>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'GATEWAY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GATEWAY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GATEWAY='> name:GATEWAY) op: assign_op.Equal rhs: {(DQ <192.0.2.1>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <192.0.2.0>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [1521 1543] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB0))} {<inet>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB1))} {<inet>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {(${ Id.VSub_Name FIB0)} {<route>} {<add>} {<default>} {(${ Id.VSub_Name GATEWAY)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {(${ Id.VSub_Name FIB1)} {<route>} {<add>} {<default>} {(${ Id.VSub_Name GATEWAY)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ <'^default.*'> (${ Id.VSub_Name TAP0) <Id.Lit_Dollar '$'>) } {<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ <'^default.*'> (${ Id.VSub_Name TAP1) <Id.Lit_Dollar '$'>) } {<setfib>} {(${ Id.VSub_Name FIB1)} {<netstat>} {<-rn>} {<-f>} {<inet>} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <default_route_with_multiple_fibs_on_same_subnet_cleanup> name: default_route_with_multiple_fibs_on_same_subnet_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<default_route_with_multiple_fibs_on_same_subnet_inet6>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <default_route_with_multiple_fibs_on_same_subnet_inet6_head> name: default_route_with_multiple_fibs_on_same_subnet_inet6_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Multiple interfaces on the same subnet but with different fibs can both have default IPv6 routes' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <default_route_with_multiple_fibs_on_same_subnet_inet6_body> name: default_route_with_multiple_fibs_on_same_subnet_inet6_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <'2001:db8::2'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <'2001:db8::3'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'GATEWAY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GATEWAY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GATEWAY='> name:GATEWAY) op: assign_op.Equal rhs: {(DQ <'2001:db8::1'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <'2001:db8::'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <64>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [1830 1852] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB0))} {<inet6>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB1))} {<inet6>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {(${ Id.VSub_Name FIB0)} {<route>} {<-6>} {<add>} {<default>} {(${ Id.VSub_Name GATEWAY)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {(${ Id.VSub_Name FIB1)} {<route>} {<-6>} {<add>} {<default>} {(${ Id.VSub_Name GATEWAY)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ <'^default.*'> (${ Id.VSub_Name TAP0) <Id.Lit_Dollar '$'>) } {<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ <'^default.*'> (${ Id.VSub_Name TAP1) <Id.Lit_Dollar '$'>) } {<setfib>} {(${ Id.VSub_Name FIB1)} {<netstat>} {<-rn>} {<-f>} {<inet6>} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <default_route_with_multiple_fibs_on_same_subnet_inet6_cleanup> name: default_route_with_multiple_fibs_on_same_subnet_inet6_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<same_ip_multiple_ifaces_fib0>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_fib0_head> name: same_ip_multiple_ifaces_fib0_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Can remove an IPv4 alias from an interface when the same IPv4 is also assigned to another interface.' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_fib0_body> name: same_ip_multiple_ifaces_fib0_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1) op: assign_op.Equal rhs: {(DQ <32>)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAP1)} {<-alias>} {(${ Id.VSub_Name ADDR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAP0)} {<-alias>} {(${ Id.VSub_Name ADDR)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_fib0_cleanup> name: same_ip_multiple_ifaces_fib0_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<same_ip_multiple_ifaces>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_head> name: same_ip_multiple_ifaces_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Can remove an IPv4 alias from an interface when the same address is also assigned to another interface, on non-default FIBs.' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_body> name: same_ip_multiple_ifaces_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_expect_fail> more_env: [] words: [ {<atf_expect_fail>} { (DQ < 'kern/189088 Assigning the same IP to multiple interfaces in different FIBs creates a host route for only one' > ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1) op: assign_op.Equal rhs: {(DQ <32>)} ) ] redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAP1)} {<-alias>} {(${ Id.VSub_Name ADDR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)} {<setfib>} {(${ Id.VSub_Name FIB1)} {<netstat>} {<-rn>} {<-f>} {<inet>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAP0)} {<-alias>} {(${ Id.VSub_Name ADDR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)} {<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_cleanup> name: same_ip_multiple_ifaces_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [TAPD] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <tail> more_env: [] words: [{<tail>} {<-r>} {(DQ <ifaces_to_cleanup>)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<ifconfig>} {(${ Id.VSub_Name TAPD)} {<destroy>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAPD)} {<destroy>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<same_ip_multiple_ifaces_inet6>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_inet6_head> name: same_ip_multiple_ifaces_inet6_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Can remove an IPv6 alias from an interface when the same address is also assigned to another interface, on non-default FIBs.' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_inet6_body> name: same_ip_multiple_ifaces_inet6_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR) op: assign_op.Equal rhs: {(DQ <'2001:db8::2'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0) op: assign_op.Equal rhs: {(DQ <64>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1) op: assign_op.Equal rhs: {(DQ <128>)} ) ] redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet6>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet6>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<ifconfig>} {(${ Id.VSub_Name TAP1)} {<inet6>} {(${ Id.VSub_Name ADDR)} {<-alias>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)} {<setfib>} {(${ Id.VSub_Name FIB1)} {<netstat>} {<-rn>} {<-f>} {<inet6>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAP1)} {<destroy>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(${ Id.VSub_Name TAP0)} {<destroy>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet6>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet6>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<ifconfig>} {(${ Id.VSub_Name TAP0)} {<inet6>} {(${ Id.VSub_Name ADDR)} {<-alias>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)} {<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <same_ip_multiple_ifaces_inet6_cleanup> name: same_ip_multiple_ifaces_inet6_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<slaac_on_nondefault_fib6>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <slaac_on_nondefault_fib6_head> name: slaac_on_nondefault_fib6_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'SLAAC correctly installs routes on non-default FIBs'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)} {(DQ <allow_sysctl_side_effects>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <slaac_on_nondefault_fib6_body> name: slaac_on_nondefault_fib6_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'PREFIX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PREFIX='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREFIX='> name:PREFIX) op: assign_op.Equal rhs: { (DQ <'2001:db8:'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'%x'>)} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <jot> more_env: [] words: [{<jot>} {<-r>} {<1>} {<0>} {<65535>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <':'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'%x'>)} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <jot> more_env: [] words: [{<jot>} {<-r>} {<1>} {<0>} {<65535>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PREFIX) <'::2'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'GATEWAY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GATEWAY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GATEWAY='> name:GATEWAY) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PREFIX) <'::1'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PREFIX) <':'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <64>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [3116 3138] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {(DQ <net.inet6.ip6.rfc6204w3>)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ <rfc6204w3.state>)} ) ] do_fork: T ) (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {(DQ <net.inet6.ip6.forwarding>)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ <forwarding.state>)} ) ] do_fork: T ) (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<net.inet6.ip6.forwarding> <Id.Lit_Equals '='> <1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<net.inet6.ip6.rfc6204w3> <Id.Lit_Equals '='> <1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <get_epair> more_env: [] words: [{<get_epair>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_iface> more_env: [] words: [ {<setup_iface>} {(DQ ($ Id.VSub_DollarName EPAIRA))} {(DQ ($ Id.VSub_DollarName FIB0))} {<inet6>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<setfib>} {($ Id.VSub_DollarName FIB1)} {<ifconfig>} {(DQ ($ Id.VSub_DollarName EPAIRB))} {<inet6>} {<-ifdisabled>} {<accept_rtadv>} {<fib>} {($ Id.VSub_DollarName FIB1)} {<up>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {($ Id.VSub_DollarName FIB1)} {<ifconfig>} {(DQ ($ Id.VSub_DollarName EPAIRB))} {<inet6>} {<-ifdisabled>} {<accept_rtadv>} {<fib>} {($ Id.VSub_DollarName FIB1)} {<up>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rtadvd> more_env: [] words: [ {<rtadvd>} {<-p>} {<rtadvd.pid>} {<-C>} {<rtadvd.sock>} {<-c>} {<'/dev/null'>} {(DQ ($ Id.VSub_DollarName EPAIRA))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rtsol> more_env: [] words: [{<rtsol>} {(DQ ($ Id.VSub_DollarName EPAIRB))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ <'inet6 '> (${ Id.VSub_Name SUBNET) <'.*prefixlen '> (${ Id.VSub_Name MASK) <'.*autoconf'> ) } {<ifconfig>} {(DQ ($ Id.VSub_DollarName EPAIRB))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ (${ Id.VSub_Name SUBNET) <'.*'> <Id.Lit_BadBackslash '\\'> <'<UHS'> <Id.Lit_BadBackslash '\\'> <'>.*lo0'> ) } {<netstat>} {<-rnf>} {<inet6>} {<-F>} {($ Id.VSub_DollarName FIB1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ (${ Id.VSub_Name SUBNET) <':/'> (${ Id.VSub_Name MASK) <'.*'> <Id.Lit_BadBackslash '\\'> <'<U'> <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB) ) } {<netstat>} {<-rnf>} {<inet6>} {<-F>} {($ Id.VSub_DollarName FIB1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ <'default.*'> <Id.Lit_BadBackslash '\\'> <'<UG'> <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB) ) } {<netstat>} {<-rnf>} {<inet6>} {<-F>} {($ Id.VSub_DollarName FIB1)} ] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [fib] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <seq> more_env: [] words: [ {<seq>} {<0>} { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.fibs>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fib))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName FIB1))} {<-o>} {(DQ ($ Id.VSub_DollarName fib))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName FIB0))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] spids: [3490 3519] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ (${ Id.VSub_Name SUBNET) <'.*'> <Id.Lit_BadBackslash '\\'> <'<UHS'> <Id.Lit_BadBackslash '\\'> <'>.*lo0'> ) } {<netstat>} {<-rnf>} {<inet6>} {<-F>} {($ Id.VSub_DollarName fib)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ (${ Id.VSub_Name SUBNET) <':/'> (${ Id.VSub_Name MASK) <'.*'> <Id.Lit_BadBackslash '\\'> <'<U'> <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB) ) } {<netstat>} {<-rnf>} {<inet6>} {<-F>} {($ Id.VSub_DollarName fib)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (DQ <'default.*'> <Id.Lit_BadBackslash '\\'> <'<UG'> <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB) ) } {<netstat>} {<-rnf>} {<inet6>} {<-F>} {($ Id.VSub_DollarName fib)} ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <slaac_on_nondefault_fib6_cleanup> name: slaac_on_nondefault_fib6_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {(DQ <rtadvd.pid>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <pkill> more_env: [] words: [{<pkill>} {<-kill>} {<-F>} {<rtadvd.pid>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {<rtadvd.pid>}] redirects: [] do_fork: T ) ] spids: [3632 3645] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {(DQ <forwarding.state>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <sysctl> more_env: [] words: [ {<sysctl>} {(DQ <net.inet6.ip6.forwarding>) <Id.Lit_Equals '='> (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ <forwarding.state>)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {(DQ <forwarding.state>)}] redirects: [] do_fork: T ) ] spids: [3686 3700] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {(DQ <rfc6204w3.state>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <sysctl> more_env: [] words: [ {<sysctl>} {(DQ <net.inet6.ip6.rfc6204w3>) <Id.Lit_Equals '='> (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ <rfc6204w3.state>)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {(DQ <rfc6204w3.state>)}] redirects: [] do_fork: T ) ] spids: [3730 3744] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_head> name: subnet_route_with_multiple_fibs_on_same_subnet_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'Multiple FIBs can have IPv4 subnet routes for the same subnet'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_body> name: subnet_route_with_multiple_fibs_on_same_subnet_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <192.0.2.3>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <192.0.2.0>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [3871 3893] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB0))} {<inet>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB1))} {<inet>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(DQ ($ Id.VSub_DollarName FIB0))} {<route>} {<get>} {($ Id.VSub_DollarName ADDR1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(DQ ($ Id.VSub_DollarName FIB1))} {<route>} {<get>} {($ Id.VSub_DollarName ADDR0)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_cleanup> name: subnet_route_with_multiple_fibs_on_same_subnet_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet_inet6>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_inet6_head> name: subnet_route_with_multiple_fibs_on_same_subnet_inet6_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'Multiple FIBs can have IPv6 subnet routes for the same subnet'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_inet6_body> name: subnet_route_with_multiple_fibs_on_same_subnet_inet6_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <'2001:db8::2'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <'2001:db8::3'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <'2001:db8::'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <64>)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [4099 4121] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB0))} {<inet6>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(DQ ($ Id.VSub_DollarName FIB1))} {<inet6>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(DQ ($ Id.VSub_DollarName FIB0))} {<route>} {<-6>} {<get>} {($ Id.VSub_DollarName ADDR1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(DQ ($ Id.VSub_DollarName FIB1))} {<route>} {<-6>} {<get>} {($ Id.VSub_DollarName ADDR0)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_inet6_cleanup> name: subnet_route_with_multiple_fibs_on_same_subnet_inet6_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<udp_dontroute>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <udp_dontroute_head> name: udp_dontroute_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Source address selection for UDP packets with SO_DONTROUTE on non-default FIBs works' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <udp_dontroute_body> name: udp_dontroute_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <192.0.2.2>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <192.0.2.3>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <192.0.2.0>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <24>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET='> name:TARGET) op: assign_op.Equal rhs: {(DQ <192.0.2.100>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SRCDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SRCDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCDIR='> name:SRCDIR) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <atf_get_srcdir> more_env: [] words: [{<atf_get_srcdir>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [4388 4410] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_TAP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_TAP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(${ Id.VSub_Name FIB0)} {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>} {(${ Id.VSub_Name TARGET)} {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_TAP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_TAP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(${ Id.VSub_Name FIB1)} {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>} {(${ Id.VSub_Name TARGET)} {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <udp_dontroute_cleanup> name: udp_dontroute_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<udp_dontroute6>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <udp_dontroute6_head> name: udp_dontroute6_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} { (DQ < 'Source address selection for UDP IPv6 packets with SO_DONTROUTE on non-default FIBs works' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <udp_dontroute6_body> name: udp_dontroute6_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ADDR0='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR0='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0) op: assign_op.Equal rhs: {(DQ <'2001:db8::2'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ADDR1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ADDR1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1) op: assign_op.Equal rhs: {(DQ <'2001:db8::3'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBNET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBNET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET) op: assign_op.Equal rhs: {(DQ <'2001:db8::'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK) op: assign_op.Equal rhs: {(DQ <64>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET='> name:TARGET) op: assign_op.Equal rhs: {(DQ <'2001:db8::100'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SRCDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SRCDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCDIR='> name:SRCDIR) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <atf_get_srcdir> more_env: [] words: [{<atf_get_srcdir>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<0>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}] redirects: [] do_fork: T ) ] spids: [4713 4735] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <get_fibs> more_env: [] words: [{<get_fibs>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet6>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} {<no_dad>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_TAP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_TAP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet6>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} {<no_dad>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(${ Id.VSub_Name FIB0)} {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>} {<-6>} {(${ Id.VSub_Name TARGET)} {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB0)} {<inet6>} {(${ Id.VSub_Name ADDR0)} {(${ Id.VSub_Name MASK)} {<no_dad>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_tap> more_env: [] words: [ {<setup_tap>} {(${ Id.VSub_Name FIB1)} {<inet6>} {(${ Id.VSub_Name ADDR1)} {(${ Id.VSub_Name MASK)} {<no_dad>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_TAP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_TAP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAP)} ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<setfib>} {(${ Id.VSub_Name FIB1)} {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>} {<-6>} {(${ Id.VSub_Name TARGET)} {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <udp_dontroute6_cleanup> name: udp_dontroute6_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cleanup_ifaces> more_env: [] words: [{<cleanup_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <atf_init_test_cases> name: atf_init_test_cases body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arpresolve_checks_interface_fib>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<loopback_and_network_routes_on_nondefault_fib>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<loopback_and_network_routes_on_nondefault_fib_inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<default_route_with_multiple_fibs_on_same_subnet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<default_route_with_multiple_fibs_on_same_subnet_inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<same_ip_multiple_ifaces_fib0>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<same_ip_multiple_ifaces>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<same_ip_multiple_ifaces_inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<slaac_on_nondefault_fib6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet_inet6>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<udp_dontroute>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<udp_dontroute6>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <get_fibs> name: get_fibs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'NUMFIBS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NUMFIBS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUMFIBS='> name:NUMFIBS) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'net_fibs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'net_fibs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'net_fibs='> name:net_fibs) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.fibs>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName i)} {<-lt>} {(DQ ($ Id.VSub_DollarName NUMFIBS))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'fib='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'fib='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fib='> name:fib) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <atf_config_get> more_env: [] words: [{<atf_config_get>} {(DQ <fibs>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-v>} {<Id.Lit_VarLike 'i='> (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } {(SQ <'{print $i}'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'fib is '> (${ Id.VSub_Name fib))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<FIB> (${ Id.VSub_Name i) <Id.Lit_Equals '='> (${ Id.VSub_Name fib)} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fib))} {<-ge>} {(DQ ($ Id.VSub_DollarName net_fibs))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [ {<atf_skip>} { (DQ <'The '> (${ Id.VSub_Name i) <'th configured fib is '> (${ Id.VSub_Name fib) <', which is not less than net.fibs, which is '> (${ Id.VSub_Name net_fibs) ) } ] redirects: [] do_fork: T ) ] spids: [5139 5156] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName i)} right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <get_epair> name: get_epair body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<EPAIRD>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<pfctl>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <pfctl> more_env: [] words: [{<pfctl>} {<-s>} {<info>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-q>} {(SQ <'Status: Enabled'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<net.inet.ip.fw.enable>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<ipf>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ipf> more_env: [] words: [{<ipf>} {<-V>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Right_Subshell _> redirects: [] ) ] ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'firewalls interfere with this test'>)}] redirects: [] do_fork: T ) ] spids: [5220 5286] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'EPAIRD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EPAIRD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EPAIRD='> name:EPAIRD) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {<epair>} {<create>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name EPAIRD)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ <ifaces_to_cleanup>)} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EPAIRA='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EPAIRA='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EPAIRA='> name:EPAIRA) op: assign_op.Equal rhs: {(${ Id.VSub_Name EPAIRD)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'EPAIRB='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EPAIRB='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EPAIRB='> name:EPAIRB) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name EPAIRD> var_name: EPAIRD suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<a>}) right: <Id.Right_DollarBrace '}'> ) <b> } ) ] redirects: [] ) ] spids: [5300 5314] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'Could not create epair(4) interfaces'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <get_tap> name: get_tap body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<TAPD>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'TAPD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAPD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAPD='> name:TAPD) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {<tap>} {<create>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name TAPD)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ <ifaces_to_cleanup>)} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TAP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TAP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP='> name:TAP) op: assign_op.Equal rhs: {(${ Id.VSub_Name TAPD)} ) ] redirects: [] ) ] spids: [5383 5397] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <atf_skip> more_env: [] words: [{<atf_skip>} {(DQ <'Could not create a tap(4) interface'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <setup_iface> name: setup_iface body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'IFACE='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'FIB='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'PROTO='> ($ Id.VSub_Number 3)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'ADDR='> ($ Id.VSub_Number 4)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'MASK='> ($ Id.VSub_Number 5)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'FLAGS='> ($ Id.VSub_Number 6)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<setfib>} {(${ Id.VSub_Name FIB)} {<ifconfig>} {($ Id.VSub_DollarName IFACE)} {(${ Id.VSub_Name PROTO)} {(${ Id.VSub_Name ADDR) <'/'> (${ Id.VSub_Name MASK)} {<fib>} {($ Id.VSub_DollarName FIB)} {($ Id.VSub_DollarName FLAGS)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <setfib> more_env: [] words: [ {<setfib>} {(${ Id.VSub_Name FIB)} {<ifconfig>} {($ Id.VSub_DollarName IFACE)} {(${ Id.VSub_Name PROTO)} {(${ Id.VSub_Name ADDR) <'/'> (${ Id.VSub_Name MASK)} {<fib>} {($ Id.VSub_DollarName FIB)} {($ Id.VSub_DollarName FLAGS)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <setup_tap> name: setup_tap body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <get_tap> more_env: [] words: [{<get_tap>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_iface> more_env: [] words: [{<setup_iface>} {(DQ ($ Id.VSub_DollarName TAP))} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <cleanup_ifaces> name: cleanup_ifaces body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {<ifaces_to_cleanup>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [iface] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<ifaces_to_cleanup>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<ifconfig>} {(DQ (${ Id.VSub_Name iface))} {<destroy>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <ifconfig> more_env: [] words: [{<ifconfig>} {(DQ (${ Id.VSub_Name iface))} {<destroy>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {<ifaces_to_cleanup>}] redirects: [] do_fork: T ) ] spids: [5626 5637] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )