Net2/usr/src/contrib/isode/snmp/gawk-2.11/s-gawk/mib.egp

function neigh_state(f) {
    if (f in states)
	return states[f];

    return (f ? f : "unknown");
}

function neigh_mode(f) {
    if (f in modes)
	return modes[f];

    return (f ? f : "unknown");
}

function neigh_trigger(f) {
   if (f in triggers)
	return triggers[f];

   return (f ? f : "unknown");
}

function do_stats() {
    didone = 0;
    for (i in egpInMsgs) {
	didone = 1;

	printf "%9s packets received\n", egpInMsgs;
	    printf "%9s packets received in error\n", egpInErrors;
	printf "\n";
	printf "%9s packets generated\n", egpOutMsgs;
	    printf "%9s packets discarded due to error\n", egpOutErrors;
    }
    if (!didone && DIAGNOSTIC)
	printf "egp statistics: %s\n", DIAGNOSTIC;
}

BEGIN {
	if (sflag) {
	    do_stats();
	    exit(0);
	}

	states[1] = "Idle";
	states[2] = "Acquisition";
	states[3] = "Down";
	states[4] = "Up";
	states[5] = "Cease";

	modes[1] = "Active";
	modes[2] = "Passive";

	triggers[1] = "Start";
	triggers[2] = "Stop";

	mibii = egpAs ? 1 : 0;
	if (mibii)
	    printf "autonomous system: %d\n", egpAs;
	printf "%-15s %-11s",
		"Neighbor",
		     "State";
	if (mibii)
	    printf       " %-5s %-7s %-6s %-6s %-6s\n",
			   "AS",
			       "Mode",
			           "Trigger",
			               "Hello",
			                   "Poll";
	else
	    printf "\n";

	didone = 0;
	for (i in egpNeighAddr) {
	    didone = 1;

	    printf "%-15s %-11s",
		    egpNeighAddr,
			 neigh_state(egpNeighState);
	    if (mibii)
		printf       " %-5d %-7s %-6s %-6d %-6d\n",
			       egpNeighAs,
				   neigh_mode(egpNeighMode),
				       neigh_trigger(egpNeighEventTrigger),
				           egpNeighIntervalHello,
				               egpNeighIntervalPoll;
	    else
		printf "\n";
	}
	if (!didone && DIAGNOSTIC)
	    printf "egpNeigh group: %s\n", DIAGNOSTIC;
}