next up previous contents
Next: Zusammenfassung und offene Probleme Up: Entwicklung eines eigenen Subagenten Previous: Low Level DPI Funktionen

High Level Funktionen für Skalar- und Tabellenvariablen

Nachdem die eingehenden DPI Requests dekodiert wurden, werden die entsprechenden High Level Funktionen ausgeführt. Diese sind ausschließlich in den Moduln mib_gets.pl, mib_sets.pl sowie sub_gets.pl, sub_sets.pl, sub_coms.pl und sub_undos.pl enthalten.

Die ersten beiden Moduln enthalten kaskadierte if-then-else Schleifen, in denen die InstanzID, also die MIB-Variable ermittelt wird:

    ...
    elsif ($InstID =~ /^1\.1\.1\.1/)    # trapSourceID
        {
        &do_get ($InstID);
        }
    elsif ($InstID =~ /^1\.1\.1\.2/)    # trapSourceTableStatus
        {
        &do_get ($InstID);
        }
    ...

Dieses Vorgehen erlaubt es, für jede MIB Variable eine separate GET Prozedur zu definieren.

Das Modul mib_sets.pl ist identisch aufgebaut, es wird allerdings noch zusätzlich nach der Art des Requests (SET/COMMIT/UNDO) unterschieden:

    elsif ($InstID =~ /^1\.1\.1\.2/)
        {
        if ($Art eq "03")            # Set - Request
            {
            $Fehler = &set_Tabelle($InstID,$Set_Typ,$Set_Laenge,2,5,@Set_Wert);
            }
        elsif ( $Art eq "0a")        # Commit - Request
            {
            $Fehler = &com($InstID,2,5)  # Commit-Request
            }
        elsif ( $Art eq "0b")        # Undo - Request
            {
            $Fehler = &undo($InstID);
            }
        if(!$Fehler)
            {
            &ResponseSuccess($dpi_get_packet_id,$GID,$InstID,$Wert{$InstID},$Set_Typ);
            }
        else
            {
            &ResponseError($dpi_get_packet_id,$Fehler) # nicht Schreibbar
            }
        }

Die Auskodierung der jeweiligen Funktionen befinden sich in den entsprechenden sub_*.pl Moduln. Dabei stehen folgende Funktionen zur Verfügung:


next up previous contents
Next: Zusammenfassung und offene Probleme Up: Entwicklung eines eigenen Subagenten Previous: Low Level DPI Funktionen
Copyright Munich Network Management Team