(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'SOCKSRC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SOCKSRC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCKSRC='> name:SOCKSRC) op: assign_op.Equal rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock1'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SOCKDST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SOCKDST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCKDST='> name:SOCKDST) op: assign_op.Equal rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock2'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IP4SRC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IP4SRC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP4SRC='> name:IP4SRC) op: assign_op.Equal rhs: {<10.0.1.1>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IP4DST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IP4DST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP4DST='> name:IP4DST) op: assign_op.Equal rhs: {<10.0.1.2>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IP4DST_PROXYARP1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IP4DST_PROXYARP1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP4DST_PROXYARP1='> name:IP4DST_PROXYARP1) op: assign_op.Equal rhs: {<10.0.1.3>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IP4DST_PROXYARP2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IP4DST_PROXYARP2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP4DST_PROXYARP2='> name:IP4DST_PROXYARP2) op: assign_op.Equal rhs: {<10.0.1.4>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DEBUG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEBUG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEBUG='> name:DEBUG) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DEBUG> var_name: DEBUG suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<false>}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TIMEOUT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TIMEOUT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TIMEOUT='> name:TIMEOUT) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_cache_expiration_5s>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_cache_expiration_10s>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_command>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_garp>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_cache_overwriting>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_proxy_arp_pub>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_proxy_arp_pubproxy>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_link_activation>} {<cleanup>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<arp_static>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <arp_cache_expiration_5s_head> name: arp_cache_expiration_5s_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for ARP cache expiration (5s)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_expiration_10s_head> name: arp_cache_expiration_10s_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for ARP cache expiration (10s)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_command_head> name: arp_command_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for arp_commands of arp(8)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_garp_head> name: arp_garp_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for GARP'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_overwriting_head> name: arp_cache_overwriting_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for behavior of overwriting ARP caches'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_proxy_arp_pub_head> name: arp_proxy_arp_pub_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for Proxy ARP (pub)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_proxy_arp_pubproxy_head> name: arp_proxy_arp_pubproxy_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for Proxy ARP (pub proxy)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_link_activation_head> name: arp_link_activation_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for activating a new MAC address'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_static_head> name: arp_static_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for static ARP entries'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <setup_dst_server> name: setup_dst_server body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <rump_server_add_iface> more_env: [] words: [{<rump_server_add_iface>} {($ Id.VSub_DollarName SOCKDST)} {<shmif0>} {<bus1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet>} {($ Id.VSub_DollarName IP4DST) <'/24'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<up>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.ifconfig> more_env: [] words: [{<rump.ifconfig>} {<shmif0>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <setup_src_server> name: setup_src_server body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'keep='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.sysctl>} {<-w>} {<net.inet.arp.keep> <Id.Lit_Equals '='> ($ Id.VSub_DollarName keep)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_add_iface> more_env: [] words: [{<rump_server_add_iface>} {($ Id.VSub_DollarName SOCKSRC)} {<shmif0>} {<bus1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet>} {($ Id.VSub_DollarName IP4SRC) <'/24'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<up>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.ifconfig> more_env: [] words: [{<rump.ifconfig>} {<shmif0>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4SRC)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <test_cache_expiration> name: test_cache_expiration body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'arp_keep='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'bonus='> <2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_dst_server> more_env: [] words: [{<setup_dst_server>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_src_server> more_env: [] words: [{<setup_src_server>} {($ Id.VSub_DollarName arp_keep)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {($ Id.VSub_DollarName TIMEOUT)} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4SRC)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<sleep>} { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName arp_keep)} right: {($ Id.VSub_DollarName bonus)} ) right: <Id.Right_DollarDParen _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4SRC)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_expiration_5s_body> name: arp_cache_expiration_5s_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <test_cache_expiration> more_env: [] words: [{<test_cache_expiration>} {<5>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_expiration_10s_body> name: arp_cache_expiration_10s_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <test_cache_expiration> more_env: [] words: [{<test_cache_expiration>} {<10>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_command_body> name: arp_command_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'arp_keep='> <5>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'bonus='> <2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_dst_server> more_env: [] words: [{<setup_dst_server>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_src_server> more_env: [] words: [{<setup_src_server>} {($ Id.VSub_DollarName arp_keep)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-d>} {($ Id.VSub_DollarName IP4SRC)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {<10.0.1.10>} {<b2> <Id.Lit_Colon ':'> <a0> <Id.Lit_Colon ':'> <20> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <10> } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:10'>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-d>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<->}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'./list'>} ) (Redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'10.0.1.11 b2:a0:20:00:00:11\n'> <'10.0.1.12 b2:a0:20:00:00:12\n'> <'10.0.1.13 b2:a0:20:00:00:13\n'> <'10.0.1.14 b2:a0:20:00:00:14\n'> <'10.0.1.15 b2:a0:20:00:00:15\n'> ] ) ) ] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-f>} {<'./list'>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:11'>)} {<rump.arp>} {<-n>} {<10.0.1.11>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.11>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:12'>)} {<rump.arp>} {<-n>} {<10.0.1.12>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.12>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:13'>)} {<rump.arp>} {<-n>} {<10.0.1.13>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.13>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:14'>)} {<rump.arp>} {<-n>} {<10.0.1.14>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.14>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:15'>)} {<rump.arp>} {<-n>} {<10.0.1.15>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.15>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <10.0.1.11>)} {<rump.arp>} {<-n>} {<-a>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <10.0.1.12>)} {<rump.arp>} {<-n>} {<-a>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <10.0.1.13>)} {<rump.arp>} {<-n>} {<-a>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <10.0.1.14>)} {<rump.arp>} {<-n>} {<-a>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <10.0.1.15>)} {<rump.arp>} {<-n>} {<-a>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-d>} {<-a>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.11>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.12>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.13>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.14>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.15>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<rump.arp>} {<-n>} {<10.0.1.1>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {<10.0.1.10>} {<b2> <Id.Lit_Colon ':'> <a0> <Id.Lit_Colon ':'> <20> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <10> } {<temp>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:10'>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<sleep>} { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName arp_keep)} right: {($ Id.VSub_DollarName bonus)} ) right: <Id.Right_DollarDParen _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <make_pkt_str_arpreq> name: make_pkt_str_arpreq body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'target='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'sender='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: {(DQ <'> ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42:'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName pkt) <' Request who-has '> ($ Id.VSub_DollarName target) <' tell '> ($ Id.VSub_DollarName sender) <', length 28'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName pkt)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_garp_body> name: arp_garp_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'pkt='>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_add_iface> more_env: [] words: [{<rump_server_add_iface>} {($ Id.VSub_DollarName SOCKSRC)} {<shmif0>} {<bus1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet>} {<'10.0.0.1/24'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet>} {<'10.0.0.2/24'>} {<alias>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<up>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.ifconfig> more_env: [] words: [{<rump.ifconfig>} {<shmif0>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<sleep>} {<1>} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <shmif_dumpbus> more_env: [] words: [{<shmif_dumpbus>} {<-p>} {<->} {<bus1>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <tcpdump> more_env: [] words: [{<tcpdump>} {<-n>} {<-e>} {<-r>} {<->}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arpreq> more_env: [] words: [{<make_pkt_str_arpreq>} {<10.0.0.1>} {<10.0.0.1>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'cat ./out |grep -q \''> ($ Id.VSub_DollarName pkt) <'\''>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arpreq> more_env: [] words: [{<make_pkt_str_arpreq>} {<10.0.0.2>} {<10.0.0.2>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'cat ./out |grep -q \''> ($ Id.VSub_DollarName pkt) <'\''>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet>} {<'10.0.0.3/24'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet>} {<'10.0.0.4/24'>} {<alias>} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <shmif_dumpbus> more_env: [] words: [{<shmif_dumpbus>} {<-p>} {<->} {<bus1>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <tcpdump> more_env: [] words: [{<tcpdump>} {<-n>} {<-e>} {<-r>} {<->}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arpreq> more_env: [] words: [{<make_pkt_str_arpreq>} {<10.0.0.3>} {<10.0.0.3>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'cat ./out |grep -q \''> ($ Id.VSub_DollarName pkt) <'\''>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arpreq> more_env: [] words: [{<make_pkt_str_arpreq>} {<10.0.0.4>} {<10.0.0.4>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'cat ./out |grep -q \''> ($ Id.VSub_DollarName pkt) <'\''>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_overwriting_body> name: arp_cache_overwriting_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'arp_keep='> <5>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'bonus='> <2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_dst_server> more_env: [] words: [{<setup_dst_server>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_src_server> more_env: [] words: [{<setup_src_server>} {($ Id.VSub_DollarName arp_keep)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<match> <Id.Lit_Colon ':'> (SQ <'File exists'>)} {<rump.arp>} {<-s>} {($ Id.VSub_DollarName IP4SRC)} {<b2> <Id.Lit_Colon ':'> <a0> <Id.Lit_Colon ':'> <20> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <ff> } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {($ Id.VSub_DollarName TIMEOUT)} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {($ Id.VSub_DollarName IP4DST)} {<b2> <Id.Lit_Colon ':'> <a0> <Id.Lit_Colon ':'> <20> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:00'>)} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {<10.0.1.10>} {<b2> <Id.Lit_Colon ':'> <a0> <Id.Lit_Colon ':'> <20> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <10> } {<temp>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:10'>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<not-match> <Id.Lit_Colon ':'> (SQ <permanent>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {<10.0.1.10>} {<b2> <Id.Lit_Colon ':'> <a0> <Id.Lit_Colon ':'> <20> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <ff> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <'b2:a0:20:00:00:ff'>)} {<rump.arp>} {<-n>} {<10.0.1.10>} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <make_pkt_str_arprep> name: make_pkt_str_arprep body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'ip='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'mac='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: {(DQ <'ethertype ARP (0x0806), length 42: '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (DQ <'Reply '> ($ Id.VSub_DollarName ip) <' is-at '> ($ Id.VSub_DollarName mac) <', length 28'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName pkt)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <make_pkt_str_garp> name: make_pkt_str_garp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'ip='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'mac='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'pkt='>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName mac) <' > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806),'>) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName pkt) <' length 42: Request who-has '> ($ Id.VSub_DollarName ip) <' tell '> ($ Id.VSub_DollarName ip) <', length 28'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName pkt)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <test_proxy_arp> name: test_proxy_arp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'arp_keep='> <5>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'opts='>} {<Id.Lit_VarLike 'title='>} {<Id.Lit_VarLike 'flags='>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'type='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKDST)} {<tap>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_dst_server> more_env: [] words: [{<setup_dst_server>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_src_server> more_env: [] words: [{<setup_src_server>} {($ Id.VSub_DollarName arp_keep)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.sysctl>} {<-w>} {<net.inet.ip.forwarding> <Id.Lit_Equals '='> <1>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'macaddr_dst='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'macaddr_dst='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'macaddr_dst='> name:macaddr_dst) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get_macaddr> more_env: [] words: [{<get_macaddr>} {($ Id.VSub_DollarName SOCKDST)} {<shmif0>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] 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 '['>} {(DQ ($ Id.VSub_DollarName type))} {<Id.Lit_Equals '='>} {(DQ <pub>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'opts='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'opts='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opts='> name:opts) op: assign_op.Equal rhs: {(DQ <pub>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'title='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'title='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'title='> name:title) op: assign_op.Equal rhs: {(DQ <'permanent published'>)} ) ] redirects: [] ) ] spids: [2872 2889] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'opts='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'opts='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opts='> name:opts) op: assign_op.Equal rhs: {(DQ <'pub proxy'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'title='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'title='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'title='> name:title) op: assign_op.Equal rhs: {(SQ <'permanent published \\(proxy only\\)'>)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<tap1>} {<create>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<tap1>} {($ Id.VSub_DollarName IP4DST_PROXYARP1) <'/24'>} {<up>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {<1>} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <extract_new_packets> more_env: [] words: [{<extract_new_packets>} {<bus1>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} {($ Id.VSub_DollarName macaddr_dst)} {($ Id.VSub_DollarName opts)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName title))} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] 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 type))} {<Id.Lit_Equals '='>} {(DQ <pub>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {<1>} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} ] redirects: [] do_fork: T ) ] spids: [3117 3134] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {<1>} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <extract_new_packets> more_env: [] words: [{<extract_new_packets>} {<bus1>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<'./out'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt1='> name:pkt1) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arprep> more_env: [] words: [ {<make_pkt_str_arprep>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} {($ Id.VSub_DollarName macaddr_dst)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt2='> name:pkt2) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_garp> more_env: [] words: [ {<make_pkt_str_garp>} {($ Id.VSub_DollarName IP4DST_PROXYARP1)} {($ Id.VSub_DollarName macaddr_dst)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] 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 '['>} {(DQ ($ Id.VSub_DollarName type))} {<Id.Lit_Equals '='>} {(DQ <pub>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ <'cat ./out |grep -q -e \''> ($ Id.VSub_DollarName pkt1) <'\' -e \''> ($ Id.VSub_DollarName pkt2) <'\''> ) } ] redirects: [] do_fork: T ) ] spids: [3249 3266] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ <'cat ./out |grep -q -e \''> ($ Id.VSub_DollarName pkt1) <'\' -e \''> ($ Id.VSub_DollarName pkt2) <'\''> ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {($ Id.VSub_DollarName IP4DST_PROXYARP2)} {($ Id.VSub_DollarName macaddr_dst)} {($ Id.VSub_DollarName opts)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName title))} {<rump.arp>} {<-n>} {($ Id.VSub_DollarName IP4DST_PROXYARP2)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.netstat> more_env: [] words: [{<rump.netstat>} {<-nr>} {<-f>} {<inet>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {<1>} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST_PROXYARP2)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <extract_new_packets> more_env: [] words: [{<extract_new_packets>} {<bus1>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<'./out'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arprep> more_env: [] words: [ {<make_pkt_str_arprep>} {($ Id.VSub_DollarName IP4DST_PROXYARP2)} {($ Id.VSub_DollarName macaddr_dst)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'cat ./out |grep -q \''> ($ Id.VSub_DollarName pkt) <'\''>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<tap2>} {<create>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<tap2>} {($ Id.VSub_DollarName IP4DST_PROXYARP2) <'/24'>} {<up>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<-w>} {<10>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {<1>} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST_PROXYARP2)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_proxy_arp_pub_body> name: arp_proxy_arp_pub_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <test_proxy_arp> more_env: [] words: [{<test_proxy_arp>} {<pub>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_proxy_arp_pubproxy_body> name: arp_proxy_arp_pubproxy_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <test_proxy_arp> more_env: [] words: [{<test_proxy_arp>} {<pubproxy>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_link_activation_body> name: arp_link_activation_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'arp_keep='> <5>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'bonus='> <2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_dst_server> more_env: [] words: [{<setup_dst_server>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_src_server> more_env: [] words: [{<setup_src_server>} {($ Id.VSub_DollarName arp_keep)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <extract_new_packets> more_env: [] words: [{<extract_new_packets>} {<bus1>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ifconfig>} {<shmif0>} {<link>} {<b2> <Id.Lit_Colon ':'> <a1> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <01> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<sleep>} {<1>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <extract_new_packets> more_env: [] words: [{<extract_new_packets>} {<bus1>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<'./out'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arpreq> more_env: [] words: [ {<make_pkt_str_arpreq>} {($ Id.VSub_DollarName IP4SRC)} {($ Id.VSub_DollarName IP4SRC)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'cat ./out |grep -q \''> ($ Id.VSub_DollarName pkt) <'\''>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ifconfig>} {<shmif0>} {<link>} {<b2> <Id.Lit_Colon ':'> <a1> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <00> <Id.Lit_Colon ':'> <02> } {<active>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<sleep>} {<1>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <extract_new_packets> more_env: [] words: [{<extract_new_packets>} {<bus1>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./out'>})] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<'./out'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'pkt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pkt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkt='> name:pkt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <make_pkt_str_arpreq> more_env: [] words: [ {<make_pkt_str_arpreq>} {($ Id.VSub_DollarName IP4SRC)} {($ Id.VSub_DollarName IP4SRC)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} { (DQ <'cat ./out |grep \''> ($ Id.VSub_DollarName pkt) <'\' |grep -q \'b2:a1:00:00:00:02\''> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_static_body> name: arp_static_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'arp_keep='> <5>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'macaddr_src='>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_start> more_env: [] words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_dst_server> more_env: [] words: [{<setup_dst_server>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup_src_server> more_env: [] words: [{<setup_src_server>} {($ Id.VSub_DollarName arp_keep)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'macaddr_src='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'macaddr_src='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'macaddr_src='> name:macaddr_src) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get_macaddr> more_env: [] words: [{<get_macaddr>} {($ Id.VSub_DollarName SOCKSRC)} {<shmif0>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKDST)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.arp>} {<-s>} {($ Id.VSub_DollarName IP4SRC)} {($ Id.VSub_DollarName macaddr_src)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump.arp> more_env: [] words: [{<rump.arp>} {<-n>} {<-a>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKSRC)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.ping>} {<-n>} {<-w>} {<1>} {<-c>} {<1>} {($ Id.VSub_DollarName IP4DST)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rump_server_destroy_ifaces> more_env: [] words: [{<rump_server_destroy_ifaces>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_expiration_5s_cleanup> name: arp_cache_expiration_5s_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_expiration_10s_cleanup> name: arp_cache_expiration_10s_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_command_cleanup> name: arp_command_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_garp_cleanup> name: arp_garp_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_cache_overwriting_cleanup> name: arp_cache_overwriting_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_proxy_arp_pub_cleanup> name: arp_proxy_arp_pub_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_proxy_arp_pubproxy_cleanup> name: arp_proxy_arp_pubproxy_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_link_activation_cleanup> name: arp_link_activation_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arp_static_cleanup> name: arp_static_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$DEBUG'> more_env: [] words: [{($ Id.VSub_DollarName DEBUG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dump> more_env: [] words: [{<dump>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <cleanup> more_env: [] words: [{<cleanup>}] 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>} {<arp_cache_expiration_5s>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_cache_expiration_10s>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_command>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_garp>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_cache_overwriting>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_proxy_arp_pub>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_proxy_arp_pubproxy>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_link_activation>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<arp_static>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )