Пример #1
0
        elif x in ('-z', '--file-size'):
            file_sz = max(string.atof(y), mrtd.MIN_FILE_SZ)

        elif x in ('-i', '--ip-addr'):
            src_ip = str2id(y)

        else:
            usage()

    #---------------------------------------------------------------------------

    if not area_addr:
        usage()

    isis = Isis(Isis._dev_str, area_addr, src_id, lan_id, src_ip)
    isis._mrtd = mrtd.Mrtd(file_pfx, "w+b", file_sz, mrtd_type, isis)
    if VERBOSE > 1:
        print ` isis `

    try:
        timeout = Isis._holdtimer
        while 1:  # main loop

            before = time.time()
            rfds, _, _ = select.select([isis._sock], [], [], timeout)
            after = time.time()
            elapsed = after - before

            if rfds != []:
                # need to rx pkt(s)
                rv = isis.parseMsg(VERBOSE, 0)
Пример #2
0
        elif x in ('-z', '--file-size'):
            file_sz = max(string.atof(y), mrtd.MIN_FILE_SZ)

        elif x in ('-b', '--bind'):
            ADDRESS = y

        else:
            usage()

    if not ADDRESS: usage()

    #---------------------------------------------------------------------------

    ospf = Ospf()
    ospf._mrtd = mrtd.Mrtd(file_pfx, "w+b", file_sz,
                           mrtd.MSG_TYPES["PROTOCOL_OSPF2"], ospf)

    if VERBOSE > 0: print ospf

    try:
        timeout = Ospf._holdtimer

        rv = None
        while 1:
            before = time.time()
            rfds, _, _ = select.select([ospf._sock], [], [], timeout)
            after = time.time()
            elapsed = after - before

            if len(rfds) > 0: rv = ospf.parseMsg(VERBOSE, 0)
            else:
Пример #3
0
            VERBOSE = 2

    filenames = args
    if not filenames:
        usage()
        
    #---------------------------------------------------------------------------

    verbose = VERBOSE-1
    if verbose < 0:
        verbose = 0
    for fn in filenames:
        cnt = 0
        try:
            of  = open(fn + '.clean', 'w+b')
            mrt = mrtd.Mrtd(fn, "rb", mrtd.DEFAULT_SIZE)
            error('[ %s ] cleaning...' % fn)
            while 1:
                cnt = cnt + 1
                msg_tup = mrt.read()
                msg = msg_tup[-2] + msg_tup[-1]
                
                try:
                    rv = mrt.parse(msg_tup, verbose)

                except (KeyboardInterrupt):
                    raise KeyboardInterrupt
                
                except:
                    rv["T"] = None
Пример #4
0
        elif x in ('-z', '--file-size'):
            file_sz = max(string.atof(y), mrtd.MIN_FILE_SZ)

        else:
            usage()

    if not (rem_name and asn):
        usage()

    if not loc_name:
        loc_name = socket.gethostname()

    #---------------------------------------------------------------------------

    bgp      = Bgp(loc_name, asn, rem_name, port, holdtime)
    bgp._mrt = mrtd.Mrtd(file_pfx, "w+b", file_sz, mrtd_type, bgp)

    if VERBOSE > 0:
        print `bgp`

    try:

        # the wafeur-est thin state machine you ever did see :-)
        bgp.sendOpen(VERBOSE, 0)
        rv = bgp.parseMsg(VERBOSE, 0)
        bgp._bgp_peer_as = rv["V"]["AS"]
        bgp.sendKeepalive(VERBOSE, 0)

        while 1:
            msg = bgp.parseMsg(VERBOSE, 0)
Пример #5
0
    filenames = args
    if not filenames:
        usage()

    #---------------------------------------------------------------------------

    NEXT_DUMP = START_T + INTERVAL

    # seed from dump if required here

    if TABLE_F:
        cnt = 0
        error('[ %s ] initializing table...' % TABLE_F)
        try:
            mrt = mrtd.Mrtd(TABLE_F, "rb")
            while 1:
                rv = mrt.parse(mrt.read(), VERBOSE)
                cnt = cnt + 1
                if rv["T"] == mrtd.MSG_TYPES["TABLE_DUMP"]:
                    for v in rv["V"]:
                        pfx = v["V"]["PREFIX"]
                        entry = { "TIME"   : v["V"]["UPTIME"],
                                  "PEER_IP": v["V"]["PEER_IP"],
                                  "PEER_AS": v["V"]["PEER_AS"],
                                  "ATTRS"  : v["V"]["ATTRS"],
                                  }

                        TABLE[pfx] = entry
        except (mrtd.EOFExc):
            error("end of file: %u messages\n" % cnt)
Пример #6
0
        filenames = []
        for f in args: filenames += glob.glob(f)
        if not filenames: usage()
        filenames.sort()
        error('### filenames:\t%s\n' % filenames[0])
        for f in filenames: error('###\t\t%s\n' % f)
##          filenames = args
##          if not filenames: usage()

        #-----------------------------------------------------------------------

        msgs  = []
        mrtds = {}

        for f in filenames:
            mrtds[f] = mrtd.Mrtd(f, "rb")
            try:
                while 1:
                    msg = mrtds[f].read()
                    if (((START_T < 0) or (msg[0] >= START_T)) and
                        ((END_T   < 0) or (msg[0] <= END_T))):

                        msgs.append( Msg(mrtds[f], msg) )
                        break

            except (mrtd.EOFExc):
                del mrtds[f]

        msgs.sort()
        of = open(file_pfx+
                  time.strftime(extn_fmt, time.gmtime(msgs[0]._time)),