Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
mogaika committed Dec 5, 2023
1 parent 9395a5b commit 59107eb
Show file tree
Hide file tree
Showing 8 changed files with 180 additions and 160 deletions.
8 changes: 4 additions & 4 deletions upf/pfcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -4757,10 +4757,10 @@ decode_smf_set_id (u8 * data, u16 length, void *p)
{
pfcp_smf_set_id_t *v = p;

get_u8(data); // skip spare
get_u8 (data); // skip spare
length--;

get_vec(v->fqdn, length, data);
get_vec (v->fqdn, length, data);

return 0;
}
Expand All @@ -4770,7 +4770,7 @@ encode_smf_set_id (void *p, u8 ** vec)
{
pfcp_smf_set_id_t *v = p;

put_u8 (*vec, 0); // spare
put_u8 (*vec, 0); // spare
vec_append (*vec, v->fqdn);

return 0;
Expand All @@ -4781,7 +4781,7 @@ free_smf_set_id (void *p)
{
pfcp_smf_set_id_t *v = p;

vec_free(v->fqdn);
vec_free (v->fqdn);
}

#define format_quota_validity_time format_u32_ie
Expand Down
12 changes: 5 additions & 7 deletions upf/pfcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -472,9 +472,9 @@ typedef struct
union
{
/*
When set to an IP address, it indicates that the
CP/UP function only exposes one IP address for the PFCP Association signalling.
*/
When set to an IP address, it indicates that the
CP/UP function only exposes one IP address for the PFCP Association signalling.
*/
ip46_address_t ip;
u8 *fqdn;
};
Expand Down Expand Up @@ -2417,8 +2417,7 @@ enum
ASSOCIATION_SETUP_REQUEST_TP_BUILD_ID,
ASSOCIATION_SETUP_REQUEST_ALTERNATIVE_SMF_IP_ADDRESS,
ASSOCIATION_SETUP_REQUEST_SMF_SET_ID,
ASSOCIATION_SETUP_REQUEST_LAST =
ASSOCIATION_SETUP_REQUEST_SMF_SET_ID
ASSOCIATION_SETUP_REQUEST_LAST = ASSOCIATION_SETUP_REQUEST_SMF_SET_ID
};

typedef struct
Expand Down Expand Up @@ -2450,8 +2449,7 @@ enum
ASSOCIATION_UPDATE_REQUEST_UE_IP_ADDRESS_POOL_IDENTITY,
ASSOCIATION_UPDATE_REQUEST_ALTERNATIVE_SMF_IP_ADDRESS,
ASSOCIATION_UPDATE_REQUEST_SMF_SET_ID,
ASSOCIATION_UPDATE_REQUEST_LAST =
ASSOCIATION_UPDATE_REQUEST_SMF_SET_ID
ASSOCIATION_UPDATE_REQUEST_LAST = ASSOCIATION_UPDATE_REQUEST_SMF_SET_ID
};

typedef struct
Expand Down
8 changes: 5 additions & 3 deletions upf/upf.c
Original file line number Diff line number Diff line change
Expand Up @@ -608,12 +608,14 @@ upf_init (vlib_main_t * vm)
sm->node_index_by_fqdn =
hash_create_vec ( /* initial length */ 32, sizeof (u8), sizeof (uword));
mhash_init (&sm->node_index_by_ip, sizeof (uword), sizeof (ip46_address_t));
mhash_init (&sm->mhash_cp_fseid_to_session_idx, sizeof (uword), sizeof (upf_cp_fseid_key_t));
mhash_init (&sm->mhash_cached_fseid_idx, sizeof (uword), sizeof (upf_cached_f_seid_key_t));
mhash_init (&sm->mhash_cp_fseid_to_session_idx, sizeof (uword),
sizeof (upf_cp_fseid_key_t));
mhash_init (&sm->mhash_cached_fseid_idx, sizeof (uword),
sizeof (upf_cached_f_seid_key_t));

sm->smf_sets = NULL;
sm->smf_set_by_fqdn =
hash_create_vec ( /* initial length */ 32, sizeof(u8), sizeof(uword));
hash_create_vec ( /* initial length */ 32, sizeof (u8), sizeof (uword));

#if 0
sm->vtep6 = hash_create_mem (0, sizeof (ip6_address_t), sizeof (uword));
Expand Down
39 changes: 21 additions & 18 deletions upf/upf_pfcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -687,19 +687,20 @@ pfcp_session_free_cp_fseid (upf_session_t * sx)

ASSERT (sx->cached_fseid_idx != ~0);

upf_cp_fseid_key_t cp_key = {};
upf_cp_fseid_key_t cp_key = { };
cp_key.seid = sx->cp_seid,
cp_key.cached_f_seid_id = sx->cached_fseid_idx,
mhash_unset(&gtm->mhash_cp_fseid_to_session_idx, &cp_key, NULL);
cp_key.cached_f_seid_id = sx->cached_fseid_idx,
mhash_unset (&gtm->mhash_cp_fseid_to_session_idx, &cp_key, NULL);

cached_fseid =
pool_elt_at_index (gtm->cached_fseid_pool, sx->cached_fseid_idx);
cached_fseid->refcount -= 1;

if (cached_fseid->refcount == 0)
{
mhash_unset(&gtm->mhash_cached_fseid_idx, &cached_fseid->key, NULL);
ASSERT (mhash_get(&gtm->mhash_cached_fseid_idx, &cached_fseid->key) == NULL);
mhash_unset (&gtm->mhash_cached_fseid_idx, &cached_fseid->key, NULL);
ASSERT (mhash_get (&gtm->mhash_cached_fseid_idx, &cached_fseid->key) ==
NULL);
pool_put (gtm->cached_fseid_pool, cached_fseid);
}
sx->cached_fseid_idx = ~0;
Expand All @@ -715,7 +716,7 @@ pfcp_session_set_cp_fseid (upf_session_t * sx, pfcp_f_seid_t * f_seid)
pfcp_session_free_cp_fseid (sx);
}

upf_cached_f_seid_key_t key = {};
upf_cached_f_seid_key_t key = { };
key.flags = f_seid->flags;
key.ip4 = f_seid->ip4;
key.ip6 = f_seid->ip6;
Expand All @@ -733,19 +734,20 @@ pfcp_session_set_cp_fseid (upf_session_t * sx, pfcp_f_seid_t * f_seid)
{
pool_get_zero (gtm->cached_fseid_pool, cached_f_seid);
cached_f_seid->key = key;
mhash_set(&gtm->mhash_cached_fseid_idx, &key,
cached_f_seid - gtm->cached_fseid_pool, NULL);
ASSERT(mhash_get(&gtm->mhash_cached_fseid_idx, &key));
mhash_set (&gtm->mhash_cached_fseid_idx, &key,
cached_f_seid - gtm->cached_fseid_pool, NULL);
ASSERT (mhash_get (&gtm->mhash_cached_fseid_idx, &key));
}

sx->cached_fseid_idx = cached_f_seid - gtm->cached_fseid_pool;
sx->cp_seid = f_seid->seid;
cached_f_seid->refcount += 1;

upf_cp_fseid_key_t cp_key = {};
upf_cp_fseid_key_t cp_key = { };
cp_key.seid = sx->cp_seid;
cp_key.cached_f_seid_id = sx->cached_fseid_idx;
mhash_set(&gtm->mhash_cp_fseid_to_session_idx, &cp_key, sx - gtm->sessions, NULL);
mhash_set (&gtm->mhash_cp_fseid_to_session_idx, &cp_key, sx - gtm->sessions,
NULL);
}

upf_session_t *
Expand Down Expand Up @@ -2402,30 +2404,31 @@ pfcp_lookup_cp_cached_f_seid (u32 cached_f_seid_idx, u64 cp_seid)
{
upf_main_t *gtm = &upf_main;

upf_cp_fseid_key_t fseid_key = {};
upf_cp_fseid_key_t fseid_key = { };
fseid_key.seid = cp_seid;
fseid_key.cached_f_seid_id = cached_f_seid_idx;

uword *p = mhash_get (&gtm->mhash_cp_fseid_to_session_idx, &fseid_key);
if (p)
return pool_elt_at_index(gtm->sessions, p[0]);
return pool_elt_at_index (gtm->sessions, p[0]);
else
return NULL;
}

upf_session_t *
pfcp_lookup_cp_f_seid (pfcp_f_seid_t *f_seid)
pfcp_lookup_cp_f_seid (pfcp_f_seid_t * f_seid)
{
upf_main_t *gtm = &upf_main;

upf_cached_f_seid_key_t cached_f_seid_key = {0};
upf_cached_f_seid_key_t cached_f_seid_key = { 0 };
cached_f_seid_key.flags = f_seid->flags;
cached_f_seid_key.ip4 = f_seid->ip4;
cached_f_seid_key.ip6 = f_seid->ip6;

uword *cached_f_seid_idx = mhash_get (&gtm->mhash_cached_fseid_idx, &cached_f_seid_key);
uword *cached_f_seid_idx =
mhash_get (&gtm->mhash_cached_fseid_idx, &cached_f_seid_key);
if (cached_f_seid_idx)
return pfcp_lookup_cp_cached_f_seid(cached_f_seid_idx[0], f_seid->seid);
return pfcp_lookup_cp_cached_f_seid (cached_f_seid_idx[0], f_seid->seid);
else
return NULL;
}
Expand Down Expand Up @@ -3035,7 +3038,7 @@ format_pfcp_session (u8 * s, va_list * args)

upf_node_assoc_t *assoc = pool_elt_at_index (gtm->nodes, sx->assoc.node);

upf_cached_f_seid_key_t f_seid = {};
upf_cached_f_seid_key_t f_seid = { };
if (sx->cached_fseid_idx != ~0)
{
upf_cached_f_seid_t *cached =
Expand Down
13 changes: 6 additions & 7 deletions upf/upf_pfcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,13 @@ upf_node_assoc_t *pfcp_new_association (session_handle_t session_handle,
pfcp_node_id_t * node_id);
void pfcp_release_association (upf_node_assoc_t * n);

void pfcp_session_set_cp_fseid(upf_session_t * sx, pfcp_f_seid_t * f_seid);
void pfcp_session_set_cp_fseid (upf_session_t * sx, pfcp_f_seid_t * f_seid);

void pfcp_node_enter_smf_set (upf_node_assoc_t * n,
u8 * fqdn);
void pfcp_node_enter_smf_set (upf_node_assoc_t * n, u8 * fqdn);
u32 *pfcp_node_exit_smf_set (upf_node_assoc_t * n);

upf_session_t *pfcp_create_session (upf_node_assoc_t * assoc,
pfcp_f_seid_t * cp_f_seid,
u64 up_seid);
pfcp_f_seid_t * cp_f_seid, u64 up_seid);
void pfcp_update_session (upf_session_t * sx);
void pfcp_disable_session (upf_session_t * sx);
void pfcp_free_session (upf_session_t * sx);
Expand Down Expand Up @@ -71,8 +69,9 @@ int pfcp_update_apply (upf_session_t * sx);
void pfcp_update_finish (upf_session_t * sx);

upf_session_t *pfcp_lookup_up_seid (u64 up_seid);
upf_session_t *pfcp_lookup_cp_cached_f_seid (u32 cached_f_seid_idx, u64 cp_seid);
upf_session_t *pfcp_lookup_cp_f_seid (pfcp_f_seid_t *f_seid);
upf_session_t *pfcp_lookup_cp_cached_f_seid (u32 cached_f_seid_idx,
u64 cp_seid);
upf_session_t *pfcp_lookup_cp_f_seid (pfcp_f_seid_t * f_seid);

static inline struct rules *
pfcp_get_rules (upf_session_t * sx, int rules)
Expand Down
Loading

0 comments on commit 59107eb

Please sign in to comment.