(command.CommandList
  children: [
    (command.ShFunction
      name: pktgen
      body: 
        (BraceGroup
          children: [
            (C {<'../pktgen/pktgen_bench_xmit_mode_netif_receive.sh'>} {<-i>} 
              {($ Id.VSub_DollarName '$IFC')} {<-s>} {<64>} {<-m>} 
              {<90> <Id.Lit_Colon ':'> <e2> <Id.Lit_Colon ':'> <ba> <Id.Lit_Colon ':'> <ff> 
                <Id.Lit_Colon ':'> <ff> <Id.Lit_Colon ':'> <ff>
              } {<-d>} {<192.168.0.1>} {<-t>} {<4>}
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'dropped='> 
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<tc>} {<-s>} {<qdisc>} {<show>} {<dev>} {($ Id.VSub_DollarName '$IFC')})
                        (C {<tail>} {<-3>})
                        (C {<awk>} {(SQ <'/drop/{print $7}'>)})
                      ]
                      negated: F
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$dropped'))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'0,'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<echo>} {(DQ <FAIL>)})]
                  spids: [80 98]
                )
              ]
              else_action: [
                (C {<echo>} {(DQ <'Successfully filtered '>)} {($ Id.VSub_DollarName '$dropped')} 
                  {(DQ <' packets'>)}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: test
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {<-n>} {(DQ <'Loading bpf program \''> ($ Id.VSub_Number '$2') <'\'... '>)})
            (C {<tc>} {<qdisc>} {<add>} {<dev>} {($ Id.VSub_DollarName '$IFC')} {<clsact>})
            (C {<tc>} {<filter>} {<add>} {<dev>} {($ Id.VSub_DollarName '$IFC')} {<ingress>} {<bpf>} {<da>} 
              {<obj>} {($ Id.VSub_Number '$1')} {<sec>} {($ Id.VSub_Number '$2')}
            )
            (C {<local>} {<Id.Lit_VarLike 'status='> ($ Id.VSub_QMark '$?')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$status')} {<-ne>} {<0>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<echo>} {(DQ <FAIL>)})]
                  spids: [191 204]
                )
              ]
              else_action: [(C {<echo>} {(DQ <ok>)}) (C {<pktgen>})]
            )
            (C {<tc>} {<qdisc>} {<del>} {<dev>} {($ Id.VSub_DollarName '$IFC')} {<clsact>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IFC)
          op: assign_op.Equal
          rhs: {<test_veth>}
          spids: [245]
        )
      ]
    )
    (C {<ip>} {<link>} {<add>} {<name>} {($ Id.VSub_DollarName '$IFC')} {<type>} {<veth>} {<peer>} {<name>} 
      {<pair_> ($ Id.VSub_DollarName '$IFC')}
    )
    (C {<ip>} {<link>} {<set>} {($ Id.VSub_DollarName '$IFC')} {<up>})
    (C {<ip>} {<link>} {<set>} {<pair_> ($ Id.VSub_DollarName '$IFC')} {<up>})
    (C {<test>} {<'./parse_simple.o'>} {<simple>})
    (C {<test>} {<'./parse_varlen.o'>} {<varlen>})
    (C {<test>} {<'./parse_ldabs.o'>} {<ldabs>})
    (C {<ip>} {<link>} {<del>} {<dev>} {($ Id.VSub_DollarName '$IFC')})
  ]
)