+ {
+ return (p[0]);
+ }
+
+ return (INDEX_INVALID);
+}
+
+u32
+bier_fmask_db_find_or_create_and_lock (index_t bti,
+ const fib_route_path_t *rpath)
+{
+ bier_fmask_id_t fmid;
+ u32 index;
+ uword *p;
+
+ bier_fmask_db_mk_key(bti, rpath, &fmid);
+ p = hash_get_mem(bier_fmask_db.bfdb_hash, &fmid);
+
+ if (NULL == p)
+ {
+ bier_fmask_t *bfm;
+ /*
+ * adding a new fmask object
+ */
+ index = bier_fmask_create_and_lock(&fmid, rpath);
+ bfm = bier_fmask_get(index);
+ hash_set_mem(bier_fmask_db.bfdb_hash, bfm->bfm_id, index);
+ }
+ else