(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCKLOCAL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCKLOCAL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCKLOCAL='> name:SOCKLOCAL)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock1'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCKPEER='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCKPEER='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCKPEER='> name:SOCKPEER)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock2'>}
        )
      ]
      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 'duplicated='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'duplicated='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'duplicated='> name:duplicated)
          op: assign_op.Equal
          rhs: {(DQ <'[Dd][Uu][Pp][Ll][Ii][Cc][Aa][Tt][Ee][Dd]'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<dad_basic>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<dad_duplicated>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<dad_count>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <dad_basic_head>
      name: dad_basic_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for IPv6 DAD basic behavior'>)}]
              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: <dad_duplicated_head>
      name: dad_duplicated_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for IPv6 DAD duplicated state'>)}]
              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: <dad_count_head>
      name: dad_count_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for IPv6 DAD count behavior'>)}]
              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_server>
      name: setup_server
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'sock='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'ip='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [{<rump_server_add_iface>} {($ Id.VSub_DollarName sock)} {<shmif0>} {<bus1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName sock)}]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName ip)}
              ]
              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 _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <make_ns_pkt_str>
      name: make_ns_pkt_str
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'id='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'target='> ($ 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 <'33:33:ff:00:00:0'> (${ Id.VSub_Name id) 
                        <', ethertype IPv6 (0x86dd), length 78: ::'>
                      )
                    }
                )
              ]
              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) <' > ff02::1:ff00:'> (${ Id.VSub_Name id) 
                        <': ICMP6, neighbor solicitation,'>
                      )
                    }
                )
              ]
              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) <' who has '> ($ Id.VSub_DollarName target) 
                        <', length 24'>
                      )
                    }
                )
              ]
              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: <dad_basic_body>
      name: dad_basic_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: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip1='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip2='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <2>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip3='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <3>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKLOCAL)} {<netinet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [{<rump_server_add_iface>} {($ Id.VSub_DollarName SOCKLOCAL)} {<shmif0>} {<bus1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKLOCAL)}]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName localip1)}
              ]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName localip2)}
              ]
              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>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump.ifconfig>
              more_env: []
              words: [{<rump.ifconfig>} {<shmif0>}]
              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.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-x>}
                {(DQ <'cat ./out |grep '> ($ Id.VSub_DollarName localip1) <' |grep -q tentative'>)}
              ]
              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>}
                {<2>}
              ]
              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_ns_pkt_str>
                            more_env: []
                            words: [{<make_ns_pkt_str>} {<2>} {($ Id.VSub_DollarName localip2)}]
                            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_ns_pkt_str>
                            more_env: []
                            words: [{<make_ns_pkt_str>} {<1>} {($ Id.VSub_DollarName localip1)}]
                            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: <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.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-x>}
                {
                  (DQ <'rump.ifconfig shmif0 |grep '> ($ Id.VSub_DollarName localip2) 
                    <' |grep -q tentative'>
                  )
                }
              ]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName localip3)}
              ]
              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>}
                {<2>}
              ]
              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_ns_pkt_str>
                            more_env: []
                            words: [{<make_ns_pkt_str>} {<3>} {($ Id.VSub_DollarName localip3)}]
                            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: <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: <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.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-x>}
                {
                  (DQ <'rump.ifconfig shmif0 |grep '> ($ Id.VSub_DollarName localip3) 
                    <' |grep -q tentative'>
                  )
                }
              ]
              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: <dad_duplicated_body>
      name: dad_duplicated_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip1='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip2='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <11>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'peerip='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <2>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKLOCAL)} {<netinet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKPEER)} {<netinet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_server>
              more_env: []
              words: [
                {<setup_server>}
                {($ Id.VSub_DollarName SOCKLOCAL)}
                {($ Id.VSub_DollarName localip1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_server>
              more_env: []
              words: [{<setup_server>} {($ Id.VSub_DollarName SOCKPEER)} {($ Id.VSub_DollarName peerip)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKLOCAL)}]
              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 ':'> 
                  (DQ ($ Id.VSub_DollarName localip1) <'.+'> ($ Id.VSub_DollarName duplicated))
                }
                {<rump.ifconfig>}
                {<shmif0>}
              ]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName peerip)}
              ]
              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: <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 peerip) <'.+'> ($ Id.VSub_DollarName duplicated))
                }
                {<rump.ifconfig>}
                {<shmif0>}
              ]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName localip2)}
              ]
              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: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<not-match> <Id.Lit_Colon ':'> 
                  (DQ ($ Id.VSub_DollarName localip2) <'.+'> ($ Id.VSub_DollarName duplicated))
                }
                {<rump.ifconfig>}
                {<shmif0>}
              ]
              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: <dad_count_test>
      name: dad_count_test
      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: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'count='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'id='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'target='> ($ Id.VSub_Number 3)}]
              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.sysctl>}
                {<-w>}
                {<-q>}
                {<net.inet6.ip6.dad_count> <Id.Lit_Equals '='> ($ Id.VSub_DollarName count)}
              ]
              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>}
                {<inet6>}
                {($ Id.VSub_DollarName target)}
              ]
              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>}
                {<20>}
              ]
              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>}
                {<2>}
              ]
              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_ns_pkt_str>
                            more_env: []
                            words: [
                              {<make_ns_pkt_str>}
                              {($ Id.VSub_DollarName id)}
                              {($ Id.VSub_DollarName target)}
                            ]
                            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>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName count))}
                {<-x>}
                {(DQ <'cat ./out |grep \''> ($ Id.VSub_DollarName pkt) <'\' | wc -l | tr -d \' \''>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <dad_count_body>
      name: dad_count_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip1='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'localip2='> <fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <2>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCKLOCAL)} {<netinet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [{<rump_server_add_iface>} {($ Id.VSub_DollarName SOCKLOCAL)} {<shmif0>} {<bus1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCKLOCAL)}]
              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 <1>)}
                {<rump.sysctl>}
                {<-n>}
                {<net.inet6.ip6.dad_count>}
              ]
              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>}
                {<sleep>}
                {<2>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump.ifconfig>
              more_env: []
              words: [{<rump.ifconfig>} {<shmif0>}]
              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.Simple
              blame_tok: <dad_count_test>
              more_env: []
              words: [{<dad_count_test>} {<1>} {<1>} {($ Id.VSub_DollarName localip1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dad_count_test>
              more_env: []
              words: [{<dad_count_test>} {<8>} {<2>} {($ Id.VSub_DollarName localip2)}]
              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: <dad_basic_cleanup>
      name: dad_basic_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: <dad_duplicated_cleanup>
      name: dad_duplicated_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: <dad_count_cleanup>
      name: dad_count_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>} {<dad_basic>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<dad_duplicated>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<dad_count>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)