Пример #1
0
def lisp_rtr_xtr_command(kv_pair):
    global lisp_ephem_listen_socket, lisp_raw_socket, lisp_ephem_port

    rloc_probing = lisp.lisp_rloc_probing

    #
    # Execute command.
    #
    lispconfig.lisp_xtr_command(kv_pair)

    #
    # Trigger if "rloc-probing = yes" just happened and it was previously
    # set to "no".
    #
    if (rloc_probing == False and lisp.lisp_rloc_probing):
        lisp_sockets = [lisp_ephem_listen_socket, lisp_ephem_listen_socket,
            None, lisp_raw_socket]
        lisp.lisp_start_rloc_probe_timer(1, lisp_sockets)
        entry = { "type" : "itr-crypto-port", "port" : lisp_ephem_port }
        lisp.lisp_write_to_dp_socket(entry)
    #endif

    #
    # Write to external data-plane if enabled.
    #
    lisp.lisp_ipc_write_xtr_parameters(lisp.lisp_debug_logging,
        lisp.lisp_data_plane_logging)
    return
Пример #2
0
def iI(kv_pair):
    global i111I, iiI1iIiI, II1Ii1iI1i
    if 19 - 19: II111iiii
    OoOO = lisp.lisp_rloc_probing
    if 32 - 32: OoOoOO00 * I1IiiI % ooOoO0o * Ii1I.O0
    if 48 - 48: iII111i * iII111i
    if 13 - 13: Ii1I / I11i + OoOoOO00.o0oOOo0O0Ooo % ooOoO0o
    if 48 - 48: I1IiiI / i11iIiiIii - o0oOOo0O0Ooo * oO0o / OoooooooOO
    lispconfig.lisp_xtr_command(kv_pair)
    if 89 - 89: iIii1I11I1II1 / I1IiiI - II111iiii / Ii1I.i11iIiiIii.Ii1I
    if 48 - 48: O0 + O0.I1Ii111 - ooOoO0o
    if 63 - 63: oO0o
    if 71 - 71: i1IIi.Ii1I * iII111i % OoooooooOO + OOooOOo
    if 36 - 36: IiII
    if (OoOO == False and lisp.lisp_rloc_probing):
        iI1Ii11iII1 = [i111I, i111I, None, iiI1iIiI]
        lisp.lisp_start_rloc_probe_timer(1, iI1Ii11iII1)
        i1iiI = {"type": "itr-crypto-port", "port": II1Ii1iI1i}
        lisp.lisp_write_to_dp_socket(i1iiI)
        if 74 - 74: I1Ii111 % I1ii11iIi11i
        if 7 - 7: II111iiii
        if 27 - 27: oO0o.OoooooooOO + i11iIiiIii
        if 86 - 86: I11i / o0oOOo0O0Ooo - o0oOOo0O0Ooo + I1ii11iIi11i + oO0o
        if 33 - 33: o0oOOo0O0Ooo.iII111i.IiII.i1IIi
    lisp.lisp_ipc_write_xtr_parameters(lisp.lisp_debug_logging,
                                       lisp.lisp_data_plane_logging)
    return
    if 49 - 49: I1ii11iIi11i
    if 84 - 84: I11i - Oo0Ooo / O0 - I1Ii111
    if 21 - 21: O0 * O0 % I1ii11iIi11i
    if 94 - 94: I11i + II111iiii % i11iIiiIii
    if 8 - 8: ooOoO0o * O0
Пример #3
0
def o00oo0000(kv_pair):
    global i111I, iiI1iIiI, II1Ii1iI1i
    if 44 - 44: Oo0Ooo % iIii1I11I1II1
    oo0ooO0 = lisp.lisp_rloc_probing
    if 28 - 28: I1ii11iIi11i * OoooooooOO.II111iiii / i11iIiiIii + oO0o
    if 38 - 38: IiII.Ii1I
    if 24 - 24: o0oOOo0O0Ooo - o0oOOo0O0Ooo + I1ii11iIi11i + I1IiiI - oO0o
    if 12 - 12: iII111i.IiII.OoOoOO00 / O0
    lispconfig.lisp_xtr_command(kv_pair)
    if 58 - 58: o0oOOo0O0Ooo - II111iiii % oO0o + I1Ii111.OoOoOO00 / IiII
    if 8 - 8: I1ii11iIi11i.OoO0O00 * I11i + II111iiii % i11iIiiIii
    if 8 - 8: ooOoO0o * O0
    if 73 - 73: o0oOOo0O0Ooo / oO0o / I11i / OoO0O00
    if 11 - 11: OoOoOO00 + IiII - OoooooooOO / OoO0O00
    if (oo0ooO0 == False and lisp.lisp_rloc_probing):
        iI1Ii11iII1 = [i111I, i111I, None, iiI1iIiI]
        lisp.lisp_start_rloc_probe_timer(1, iI1Ii11iII1)
        iIIi1iI1I1IIi = {"type": "itr-crypto-port", "port": II1Ii1iI1i}
        lisp.lisp_write_to_dp_socket(iIIi1iI1I1IIi)
        if 77 - 77: ooOoO0o / Oo0Ooo + ooOoO0o % o0oOOo0O0Ooo - I1IiiI * I1IiiI
        if 23 - 23:
            iII111i.II111iiii % I1ii11iIi11i - OoooooooOO * Oo0Ooo.iIii1I11I1II1
        if 37 - 37: iII111i / Oo0Ooo.I11i * I11i
        if 80 - 80: OOooOOo % I1ii11iIi11i
        if 91 - 91: I11i / O0 - Ii1I.I1IiiI
    lisp.lisp_ipc_write_xtr_parameters(lisp.lisp_debug_logging,
                                       lisp.lisp_data_plane_logging)
    return
    if 82 - 82: IiII * OOooOOo / oO0o
    if 2 - 2: I1IiiI + o0oOOo0O0Ooo.o0oOOo0O0Ooo.O0 / I11i
    if 40 - 40: o0oOOo0O0Ooo - II111iiii / Oo0Ooo
    if 14 - 14: I1ii11iIi11i
    if 5 - 5: o0oOOo0O0Ooo.iIii1I11I1II1 % iIii1I11I1II1
Пример #4
0
def iIIi1iI1I1IIi(kv_pair):
    global II1Ii1iI1i, OOo, iiI1iIiI
    if 77 - 77: ooOoO0o / Oo0Ooo + ooOoO0o % o0oOOo0O0Ooo - I1IiiI * I1IiiI
    I1 = lisp.lisp_rloc_probing
    if 69 - 69: I1ii11iIi11i - I1Ii111
    if 16 - 16: Oo0Ooo
    if 14 - 14: i1IIi - O0 % Oo0Ooo
    if 92 - 92: Ii1I % iII111i / I1ii11iIi11i % I1ii11iIi11i * I1IiiI
    lispconfig.lisp_xtr_command(kv_pair)
    if 74 - 74: O0.I1IiiI % OoO0O00 % IiII
    if 87 - 87: oO0o - i11iIiiIii
    if 78 - 78: i11iIiiIii / iIii1I11I1II1 - o0oOOo0O0Ooo
    if 23 - 23: I11i
    if 40 - 40: o0oOOo0O0Ooo - II111iiii / Oo0Ooo
    if (I1 == False and lisp.lisp_rloc_probing):
        iI1Ii11iII1 = [II1Ii1iI1i, II1Ii1iI1i, None, OOo]
        lisp.lisp_start_rloc_probe_timer(1, iI1Ii11iII1)
        iiIiI1ii = {"type": "itr-crypto-port", "port": iiI1iIiI}
        lisp.lisp_write_to_dp_socket(iiIiI1ii)
        if 56 - 56: OoooooooOO - I11i - i1IIi
        if 8 - 8: I1Ii111 / OOooOOo.I1IiiI + I1ii11iIi11i / i11iIiiIii
        if 31 - 31:
            ooOoO0o - iIii1I11I1II1 + iII111i.Oo0Ooo / IiII % iIii1I11I1II1
        if 6 - 6:
            IiII * i11iIiiIii % iIii1I11I1II1 % i11iIiiIii + o0oOOo0O0Ooo / i1IIi
        if 53 - 53: I11i + iIii1I11I1II1
    lisp.lisp_ipc_write_xtr_parameters(lisp.lisp_debug_logging,
                                       lisp.lisp_data_plane_logging)
    return
    if 70 - 70: I1ii11iIi11i
    if 67 - 67: OoooooooOO
    if 29 - 29: O0 - i11iIiiIii - II111iiii + OOooOOo * IiII
    if 2 - 2: i1IIi - ooOoO0o + I1IiiI.o0oOOo0O0Ooo * o0oOOo0O0Ooo / OoOoOO00
    if 93 - 93: i1IIi
Пример #5
0
def lisp_itr_xtr_command(kv_pair):
    global lisp_ephem_listen_socket

    #
    # Cache current state for nat-traversal and rloc-probing so we know if
    # we should trigger..
    #
    nat_traversal = lisp.lisp_nat_traversal
    rloc_probing = lisp.lisp_rloc_probing

    #
    # Execute command.
    #
    lispconfig.lisp_xtr_command(kv_pair)

    #
    # Did "nat-traversal = yes" or "rloc-probing = yes" just happen?
    #
    nat_now_on = (nat_traversal == False and lisp.lisp_nat_traversal and \
        lisp.lisp_rloc_probing)
    rloc_probing_now_on = (rloc_probing == False and lisp.lisp_rloc_probing)

    interval = 0
    if (rloc_probing_now_on): interval = 1
    if (nat_now_on): interval = 5
    
    if (interval != 0):
        lisp_sockets = [lisp_ephem_listen_socket, lisp_ephem_listen_socket]
        lisp.lisp_start_rloc_probe_timer(interval, lisp_sockets)
    #endif

    #
    # If nat-traversal=yes and data-plane-security=yes on an ITR, then we
    # need to set source port in RLOC-probe requrests and encapsulated data
    # packets to be the same value.
    #
    if (lisp.lisp_crypto_ephem_port == None and lisp.lisp_data_plane_security):
        port = lisp_ephem_listen_socket.getsockname()[1]
        lisp.lisp_crypto_ephem_port = port
        lisp.lprint("Use port {} for lisp-crypto packets".format(port))
        entry = { "type" : "itr-crypto-port", "port" : port }
        lisp.lisp_write_to_dp_socket(entry)
    #endif

    #
    # Write to external data-plane if enabled.
    #
    lisp.lisp_ipc_write_xtr_parameters(lisp.lisp_debug_logging,
        lisp.lisp_data_plane_logging)
    return
Пример #6
0
            False)
        if (source == ""): break

        if (lisp.lisp_is_rloc_probe_reply(packet[0])):
            lisp.lprint("ITR ignoring RLOC-probe reply, using pcap")
            continue
        #endif
        probe = lisp.lisp_parse_packet(ephem_nat_sockets, packet, source, port)

        #
        # Info-Reply has new RTR-list, RLOC-probe the RTR RLOCs so we can
        # lisp-crypto faster.
        #
        if (probe): 
            lisp_sockets = [lisp_ephem_listen_socket, lisp_ephem_listen_socket]
            lisp.lisp_start_rloc_probe_timer(0, lisp_sockets)
        #endif
    #endif

    #
    # Process either commands, an IPC data-packet (for testing), or any
    # protocol message on the IPC listen socket.
    #
    if (lisp_ipc_listen_socket in ready_list):
        opcode, source, port, packet = \
            lisp.lisp_receive(lisp_ipc_listen_socket, True)
        if (source == ""): break

        if (opcode == "command"): 
            if (packet == "clear"): 
                lisp.lisp_clear_map_cache()