(CommandList children: [ (FuncDef name: err body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:exitcode) op: Equal rhs: {($ VSub_Number "$1")} spids: [33] ) ] spids: [31] ) (C {(shift)}) (SimpleCommand words: [{(echo)} {(DQ ("ERROR: ") ($ VSub_At "$@"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[47])] ) (C {(exit)} {($ VSub_Name "$exitcode")}) ] spids: [28] ) spids: [22 27] ) (FuncDef name: warn body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ("WARN : ") ($ VSub_At "$@"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[74])] ) ] spids: [64] ) spids: [58 63] ) (FuncDef name: info body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{(DQ ($ VSub_Name "$VERBOSE"))}) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("INFO : ") ($ VSub_At "$@"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[112])] ) ] spids: [-1 102] ) ] spids: [-1 116] ) ] spids: [86] ) spids: [80 85] ) (C {(export)} {(Lit_VarLike "PROC_DIR=") (/proc/net/pktgen)}) (FuncDef name: pg_ctrl body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:proc_file) op: Equal rhs: {(DQ (pgctrl))} spids: [167] ) ] spids: [165] ) (C {(proc_cmd)} {(${ VSub_Name proc_file)} {(DQ ($ VSub_At "$@"))}) ] spids: [162] ) spids: [156 161] ) (FuncDef name: pg_thread body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:thread) op: Equal rhs: {($ VSub_Number "$1")} spids: [197] ) ] spids: [195] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:proc_file) op: Equal rhs: {(DQ (kpktgend_) (${ VSub_Name thread))} spids: [203] ) ] spids: [201] ) (C {(shift)}) (C {(proc_cmd)} {(${ VSub_Name proc_file)} {(DQ ($ VSub_At "$@"))}) ] spids: [192] ) spids: [186 191] ) (FuncDef name: pg_set body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dev) op: Equal rhs: {($ VSub_Number "$1")} spids: [239] ) ] spids: [237] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:proc_file) op: Equal rhs: {(DQ ($ VSub_Name "$dev"))} spids: [245] ) ] spids: [243] ) (C {(shift)}) (C {(proc_cmd)} {(${ VSub_Name proc_file)} {(DQ ($ VSub_At "$@"))}) ] spids: [234] ) spids: [228 233] ) (FuncDef name: proc_cmd body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:result) op:Equal spids:[284])] spids: [282] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:proc_file) op: Equal rhs: {($ VSub_Number "$1")} spids: [289] ) ] spids: [287] ) (C {(shift)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:proc_ctrl) op: Equal rhs: {(${ VSub_Name PROC_DIR) (/) ($ VSub_Name "$proc_file")} spids: [302] ) ] spids: [300] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_e child: {(DQ ($ VSub_Name "$proc_ctrl"))} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(err)} {(3)} { (DQ ("proc file:") ($ VSub_Name "$proc_ctrl") (" does not exists (dev added to thread?)") ) } ) ] spids: [-1 325] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_w child: {(DQ ($ VSub_Name "$proc_ctrl"))} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(err)} {(4)} { (DQ ("proc file:") ($ VSub_Name "$proc_ctrl") (" not writable, not root?!")) } ) ] spids: [-1 357] ) ] spids: [-1 371] ) ] spids: [339 374] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$DEBUG"))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("cmd: ") ($ VSub_At "$@") (" > ") ($ VSub_Name "$proc_ctrl"))}) ] spids: [-1 395] ) ] spids: [-1 408] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_At "$@"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$proc_ctrl"))} spids: [421] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [430] ) ] spids: [428] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(grep)} {(DQ ("Result: OK:"))} {($ VSub_Name "$proc_ctrl")})] ) left_token: <Left_CommandSub "$("> spids: [436 444] ) } spids: [435] ) ] spids: [435] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$result"))} right: {(DQ )} ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(grep)} {(DQ ("Result:"))} {($ VSub_Name "$proc_ctrl")}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[478])] ) ] spids: [-1 467] ) ] spids: [-1 482] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_Name "$status")}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(err)} {(5)} { (DQ ("Write error(") ($ VSub_Name "$status") (") occurred cmd: ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_At "$@") (" > ") ($ VSub_Name "$proc_ctrl") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } ) ] spids: [-1 499] ) ] spids: [-1 518] ) ] spids: [279] ) spids: [273 278] ) (FuncDef name: pgset body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:result) op:Equal spids:[537])] spids: [535] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$DEBUG"))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("cmd: ") ($ VSub_Number "$1") (" > ") ($ VSub_Name "$PGDEV"))}) ] spids: [-1 558] ) ] spids: [-1 571] ) (SimpleCommand words: [{(echo)} {($ VSub_Number "$1")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$PGDEV")} spids: [578] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [585] ) ] spids: [583] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {($ VSub_Name "$PGDEV")}) (C {(fgrep)} {(DQ ("Result: OK:"))}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [591 603] ) } spids: [590] ) ] spids: [590] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$result"))} right: {(DQ )} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Pipeline children: [ (C {(cat)} {($ VSub_Name "$PGDEV")}) (C {(fgrep)} {(Result) (Lit_Other ":")}) ] negated: False ) ] spids: [-1 622] ) ] spids: [-1 637] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_Name "$status")}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(err)} {(5)} { (DQ ("Write error(") ($ VSub_Name "$status") (") occurred cmd: ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Number "$1") (" > ") ($ VSub_Name "$PGDEV") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } ) ] spids: [-1 654] ) ] spids: [-1 673] ) ] spids: [532] ) spids: [526 531] ) (FuncDef name: root_check_run_with_sudo body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$EUID"))} {(-ne)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-x)} {($ VSub_Number "$0")} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(info)} {(DQ ("Not root, running with sudo"))}) (C {(sudo)} {(DQ ($ VSub_Number "$0"))} {(DQ ($ VSub_At "$@"))}) (C {(exit)} {($ VSub_QMark "$?")}) ] spids: [-1 728] ) ] spids: [-1 757] ) (C {(err)} {(4)} {(DQ ("cannot perform sudo run of ") ($ VSub_Number "$0"))}) ] spids: [-1 714] ) ] spids: [-1 770] ) ] spids: [688] ) spids: [682 687] ) ] )