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); }
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); }
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); }
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); }
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); }
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); }