Пример #1
0
inline fwd_entry_t *
fwd_entry_new_init(lisp_addr_t *srloc, lisp_addr_t *drloc, int *out_socket)
{
    fwd_entry_t *fw_entry = xzalloc(sizeof(fwd_entry_t));
    if (!fw_entry){
        return (NULL);
    }
    fw_entry->srloc = lisp_addr_clone(srloc);
    fw_entry->drloc = lisp_addr_clone(drloc);
    fw_entry->out_sock = out_socket;
    return (fw_entry);
}
Пример #2
0
fwd_policy_loct_parm *
policy_loct_parm_new(lisp_addr_t *rloc_addr)
{
    fwd_policy_loct_parm *pol_loct = xzalloc(sizeof(fwd_policy_loct_parm));
	pol_loct->rloc_addr = lisp_addr_clone(rloc_addr);
	pol_loct->paramiters = shash_new();
	return (pol_loct);
}
Пример #3
0
fwd_policy_map_parm *
policy_map_parm_new(lisp_addr_t *eid_prefix)
{
    fwd_policy_map_parm *pol_map = xzalloc(sizeof(fwd_policy_map_parm));
	pol_map->eid_prefix = lisp_addr_clone(eid_prefix);
	pol_map->paramiters = shash_new();
	pol_map->locators = glist_new_managed((glist_del_fct)policy_loct_parm_del);

	return (pol_map);
}
Пример #4
0
int
lisp_msg_parse_itr_rlocs(lbuf_t *b, glist_t *rlocs)
{
    lisp_addr_t *tloc;
    void *mreq_hdr = lbuf_lisp(b);
    int i;

    tloc = lisp_addr_new();
    for (i = 0; i < MREQ_ITR_RLOC_COUNT(mreq_hdr) + 1; i++) {
        if (lisp_msg_parse_addr(b, tloc) != GOOD) {
            return(BAD);
        }
        glist_add(lisp_addr_clone(tloc), rlocs);
        OOR_LOG(LDBG_1," itr-rloc: %s", lisp_addr_to_char(tloc));
    }
    lisp_addr_del(tloc);
    return(GOOD);
}
Пример #5
0
lisp_site_prefix_t *
lisp_site_prefix_init(lisp_addr_t *eid, uint32_t iid, int key_type, char *key,
        uint8_t more_specifics, uint8_t proxy_reply, uint8_t merge)
{

    lisp_site_prefix_t *sp = NULL;
    sp = xzalloc(sizeof(lisp_site_prefix_t));

    sp->eid_prefix = lisp_addr_clone(eid);
    sp->iid = iid;
    sp->key_type = key_type;
    sp->key = strdup(key);
    sp->accept_more_specifics = more_specifics;
    sp->proxy_reply = proxy_reply;
    sp->merge = merge;

    return(sp);
}
Пример #6
0
locator_t *
locator_new_init(lisp_addr_t* addr,uint8_t state, uint8_t priority, uint8_t weight,
        uint8_t mpriority, uint8_t mweight)
{
    locator_t*  locator;

    locator = locator_new();
    if (locator == NULL){
        return (NULL);
    }
    locator->addr = lisp_addr_clone(addr);
    locator->state = state;
    locator->priority = priority;
    locator->weight = weight;
    locator->mpriority = mpriority;
    locator->mweight = mweight;

    return (locator);
}