Hi José Miguel,

I have added this functionality in the branch testing-novpp. The way to check if a mapping is active or not is done in the control plane. This should be done in the data plane but as I will not be able to reuse this code for the new release, I used the easiest way to do it.

I hope this feature will help you in your experiments.

Best regards

Albert

El 09/06/17 a les 22:26, José Miguel Guzmán ha escrit:
Hi Lori, I agree with you.
IMHO, 1) is not so bad, It would help to reduce delay for the first packet to a forgotten prefix that reactivates. I am assuming most deployments will have a few EIDs (<10 in our case) For 2), I found the function that handles the timer expiration mc_entry_expiration_timer_cb. I will need to review the code to see if it is safe to call handle_map_cache_miss(xtr, dst_eid, src_eid) here. I am confused with this
/* If the EID is not from a iid net, try to fordward to the PeTR */
if (lisp_addr_is_iid(dst_eid) == FALSE){

I am wondering if instead of removing the entry, and then installing a temporary NOT_ACTIVE entry, is it not better to keep the same entry in NOT_ACTIVE status, and use it as it were active (as the last known mapping).

JM





El vie., 9 jun. 2017 a las 4:00, Lori Jakab (<lorand.ja...@gmail.com <mailto:lorand.ja...@gmail.com>>) escribió:

    Jose,

    Regardless of the TTL value, one optimization in the code that
    could be made would be to be proactive in refreshing mappings in
    the map-cache, so that active flows don't get packet drops when
    the TTL expires. This would need two things to be implemented:

     1. Keeping a "last hit" timestamp for each map-cache entry, to be
        able to determine which entries have active flows. For each
        packet that is cache hit, we would update the timer.
     2. When a cache entry's TTL expires, if it is still active (for
        that we need to define what active means, which can be a
        configurable threshold) we send out a Map-Request without
        removing it, wait for a reply, and install that into the
        map-cache.

    In theory we could just do 2) without 1) but we don't want to keep
    unused entries around in the map-cache.

    I'm pretty sure the OOR team is very busy with other high priority
    items, but I'm also pretty sure they would be happy to take
    patches implementing the above.

    Regards,
    -Lori

    On Fri, Jun 9, 2017 at 10:34 AM, Albert López <alo...@ac.upc.edu
    <mailto:alo...@ac.upc.edu>> wrote:

        Dear José,

        The expiration time is defined by TTL. This is a hard coded
        parameter that is defined by DEFAULT_DATA_CACHE_TTL (defs.h)
        and is used in mapping_record_init_hdr(lisp_message_fields.c)
        . We usually set this value to 10 (10 minutes). I don't know
        why you have 1, may be I sent to you a testing version. In a
        future we would like to add this parameter in the
        configuration file but we don't have it yet.

        Best regards

        Albert


        El 09/06/17 a les 00:08, José Miguel Guzmán ha escrit:
        Hi All

        We realized that every minute, we are dropping traffic
        packets due to expiration of the destination prefix, and time
        required to update the entry form server (couple of seconds)

        *[2017/6/8 18:53:48] DEBUG: Got expiration for EID
        192.168.102.0/24 <http://192.168.102.0/24>*
        *[2017/6/8 18:53:49] DEBUG: No map cache for EID
        192.168.102.168. Sending Map-Request!
        *
        [2017/6/8 18:53:49] DEBUG-2: lisp_addr_get_ip_pref_addr: Not
        applicable to ip addressess
        [2017/6/8 18:53:49] DEBUG: Balancing locator vector for
        192.168.102.168/32 <http://192.168.102.168/32>:
        [2017/6/8 18:53:49] DEBUG:   IPv4 locators vector (0 locators):
        [2017/6/8 18:53:49] DEBUG:   IPv6 locators vector (0 locators):
        [2017/6/8 18:53:49] DEBUG:   IPv4 & IPv6 locators vector (0
        locators):
        [2017/6/8 18:53:49] DEBUG: locators for req: 172.16.60.8
        [2017/6/8 18:53:49] DEBUG: Map-Request->
        flags:a=0,m=0,p=0,s=0,P=0,S=0, irc: 0 (+1), record-count: 1,
        nonce: 78627d755, itr-rlocs:172.16.60.8, src-eid:
        192.168.101.1, req-eid: 192.168.102.168/32
        <http://192.168.102.168/32>
        [2017/6/8 18:53:49] DEBUG-2: lisp_addr_get_ip_addr: Not
        applicable to prefixes
        [2017/6/8 18:53:49] DEBUG: ECM -> flags:s, inner IP:
        192.168.101.1 -> 192.168.102.168/32
        <http://192.168.102.168/32>, inner UDP: 4342 -> 4342
        [2017/6/8 18:53:49] DEBUG: Sent control message IP:
        172.16.60.8 -> 172.16.60.194 UDP: 4342 -> 4342
        *[2017/6/8 18:53:49] DEBUG: Received Map-Reply->
        flags:P=0,E=0,S=0, record-count: 1, nonce: 78627d75597fe77d,
        IP: 192.168.123.75 -> 172.16.60.8, UDP: 4342 -> 4342*
        [2017/6/8 18:53:49] DEBUG:   Mapping-record -> ttl: 1
        loc-count: 1 action: no-action auth: 0 map-version: 0 eid:
        192.168.102.0/24 <http://192.168.102.0/24>
        [2017/6/8 18:53:49] DEBUG:     Locator-record -> flags:
        L=1,p=0,R=1, p/w: 1/100 255/0, addr: 172.16.60.9
        [2017/6/8 18:53:49] DEBUG-2: mapping_get_locators_with_afi:
        List for OOR AFI 1 and afi 2 not yet created
        [2017/6/8 18:53:49] DEBUG-2: mapping_add_locator: Added
        locator 172.16.60.9 to the mapping with EID 192.168.102.0/24
        <http://192.168.102.0/24>.
        [2017/6/8 18:53:49] DEBUG-2: mapping_get_locators_with_afi:
        List for OOR AFI 3 and afi 10 not yet created
        [2017/6/8 18:53:49] DEBUG: Balancing locator vector for
        192.168.102.0/24 <http://192.168.102.0/24>:
        [2017/6/8 18:53:49] DEBUG:   IPv4 locators vector (1
        locators):   172.16.60.9
        [2017/6/8 18:53:49] DEBUG:   IPv6 locators vector (0 locators):
        [2017/6/8 18:53:49] DEBUG:   IPv4 & IPv6 locators vector (0
        locators):
        *[2017/6/8 18:53:49] DEBUG: The map cache entry of EID
        192.168.102.0/24 <http://192.168.102.0/24> will expire in 1
        minutes.*
        [2017/6/8 18:53:49] DEBUG-2: Programming probing of EID's
        192.168.102.0/24 <http://192.168.102.0/24> locator
        172.16.60.9 (30 seconds)

        I am not sure if I am doing something wrong.. (probably :))

        Is there any way to handle this transparently? For instance,
        have xTR refreshing prefixes 5secs before expiration, so,
        traffic is not interrupted?
        Are these expiration timers, configurable? I only see
        that rloc-probing timers are tunable.

        Thanks!
        JM




--
                *José Miguel Guzmán
        *Senior Network Consultant
        Latin America & Caribbean

                        +1 (650) 248-2490 <tel:+16502482490>
        +56 (9) 9064-2780 <tel:+56990642780>

                        jmguz...@whitestack.com <mailto:jmguz...@whitestack.com>

                        jmguzmanc



        _______________________________________________
        Users mailing list
        Users@openoverlayrouter.org <mailto:Users@openoverlayrouter.org>
        http://mail.openoverlayrouter.org/cgi-bin/mailman/listinfo/users


--

        *José Miguel Guzmán
*Senior Network Consultant
Latin America & Caribbean

                +1 (650) 248-2490 <tel:+16502482490>
+56 (9) 9064-2780 <tel:+56990642780>

                jmguz...@whitestack.com <mailto:jmguz...@whitestack.com>

                jmguzmanc


_______________________________________________
Users mailing list
Users@openoverlayrouter.org
http://mail.openoverlayrouter.org/cgi-bin/mailman/listinfo/users

Reply via email to