Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-SMF
Commits
6fd511e6
Unverified
Commit
6fd511e6
authored
Mar 17, 2021
by
Rohan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
IE UPF Features - length fix
parent
b341745a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
100 additions
and
100 deletions
+100
-100
src/common/3gpp_29.244.h
src/common/3gpp_29.244.h
+45
-45
src/pfcp/3gpp_29.244.hpp
src/pfcp/3gpp_29.244.hpp
+55
-55
No files found.
src/common/3gpp_29.244.h
View file @
6fd511e6
...
@@ -703,39 +703,39 @@ struct up_function_features_s {
...
@@ -703,39 +703,39 @@ struct up_function_features_s {
uint16_t
quoac
:
1
;
uint16_t
quoac
:
1
;
uint16_t
trace
:
1
;
uint16_t
trace
:
1
;
uint16_t
frrt
:
1
;
uint16_t
frrt
:
1
;
// uint16_t spare : 2;
// uint16_t spare : 2;
uint16_t
pfde
:
1
;
uint16_t
pfde
:
1
;
uint16_t
epfar
:
1
;
uint16_t
epfar
:
1
;
uint16_t
dpdra
:
1
;
uint16_t
dpdra
:
1
;
uint16_t
adpdp
:
1
;
uint16_t
adpdp
:
1
;
uint16_t
ueip
:
1
;
uint16_t
ueip
:
1
;
uint16_t
sset
:
1
;
uint16_t
sset
:
1
;
uint8_t
mnop
:
1
;
uint8_t
mnop
:
1
;
uint8_t
mte
:
1
;
uint8_t
mte
:
1
;
uint8_t
bundl
:
1
;
uint8_t
bundl
:
1
;
uint8_t
gcom
:
1
;
uint8_t
gcom
:
1
;
uint8_t
mpas
:
1
;
uint8_t
mpas
:
1
;
uint8_t
rttl
:
1
;
uint8_t
rttl
:
1
;
uint8_t
vtime
:
1
;
uint8_t
vtime
:
1
;
uint8_t
norp
:
1
;
uint8_t
norp
:
1
;
uint8_t
iptv
:
1
;
uint8_t
iptv
:
1
;
uint8_t
ip6pl
:
1
;
uint8_t
ip6pl
:
1
;
uint8_t
tscu
:
1
;
uint8_t
tscu
:
1
;
uint8_t
mptcp
:
1
;
uint8_t
mptcp
:
1
;
uint8_t
atsss_ll
:
1
;
uint8_t
atsss_ll
:
1
;
uint8_t
qfqm
:
1
;
uint8_t
qfqm
:
1
;
uint8_t
gpqm
:
1
;
uint8_t
gpqm
:
1
;
uint8_t
mt_edt
:
1
;
uint8_t
mt_edt
:
1
;
uint8_t
ciot
:
1
;
uint8_t
ciot
:
1
;
uint8_t
ethar
:
1
;
uint8_t
ethar
:
1
;
uint8_t
ddds
:
1
;
uint8_t
ddds
:
1
;
uint8_t
rds
:
1
;
uint8_t
rds
:
1
;
uint8_t
rttwp
:
1
;
uint8_t
rttwp
:
1
;
uint8_t
spare
:
7
;
uint8_t
spare
:
7
;
// up_function_features_s& operator=(up_function_features_s i)
// up_function_features_s& operator=(up_function_features_s i)
//{
//{
...
@@ -777,7 +777,7 @@ struct up_function_features_s {
...
@@ -777,7 +777,7 @@ struct up_function_features_s {
iptv
(
0
),
iptv
(
0
),
ip6pl
(
0
),
ip6pl
(
0
),
tscu
(
0
),
tscu
(
0
),
mptcp
(
0
),
mptcp
(
0
),
atsss_ll
(
0
),
atsss_ll
(
0
),
qfqm
(
0
),
qfqm
(
0
),
...
@@ -820,25 +820,25 @@ struct up_function_features_s {
...
@@ -820,25 +820,25 @@ struct up_function_features_s {
bundl
=
i
.
bundl
;
bundl
=
i
.
bundl
;
gcom
=
i
.
gcom
;
gcom
=
i
.
gcom
;
mpas
=
i
.
mpas
;
mpas
=
i
.
mpas
;
rttl
=
i
.
rttl
;
rttl
=
i
.
rttl
;
vtime
=
i
.
vtime
;
vtime
=
i
.
vtime
;
norp
=
i
.
norp
;
norp
=
i
.
norp
;
iptv
=
i
.
iptv
;
iptv
=
i
.
iptv
;
ip6pl
=
i
.
ip6pl
;
ip6pl
=
i
.
ip6pl
;
tscu
=
i
.
tscu
;
tscu
=
i
.
tscu
;
mptcp
=
i
.
mptcp
;
mptcp
=
i
.
mptcp
;
atsss_ll
=
i
.
atsss_ll
;
atsss_ll
=
i
.
atsss_ll
;
qfqm
=
i
.
qfqm
;
qfqm
=
i
.
qfqm
;
gpqm
=
i
.
gpqm
;
gpqm
=
i
.
gpqm
;
mt_edt
=
i
.
mt_edt
;
mt_edt
=
i
.
mt_edt
;
ciot
=
i
.
ciot
;
ciot
=
i
.
ciot
;
ethar
=
i
.
ethar
;
ethar
=
i
.
ethar
;
ddds
=
i
.
ddds
;
ddds
=
i
.
ddds
;
rds
=
i
.
rds
;
rds
=
i
.
rds
;
rttwp
=
i
.
rttwp
;
rttwp
=
i
.
rttwp
;
}
}
};
};
// typedef struct up_function_features_s up_function_features_t;
// typedef struct up_function_features_s up_function_features_t;
...
...
src/pfcp/3gpp_29.244.hpp
View file @
6fd511e6
...
@@ -2220,7 +2220,7 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2220,7 +2220,7 @@ class pfcp_up_function_features_ie : public pfcp_ie {
uint8_t
quoac
:
1
;
uint8_t
quoac
:
1
;
uint8_t
trace
:
1
;
uint8_t
trace
:
1
;
uint8_t
frrt
:
1
;
uint8_t
frrt
:
1
;
// uint8_t spare : 2;
// uint8_t spare : 2;
uint8_t
pfde
:
1
;
uint8_t
pfde
:
1
;
uint8_t
epfar
:
1
;
uint8_t
epfar
:
1
;
}
bf
;
}
bf
;
...
@@ -2249,11 +2249,11 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2249,11 +2249,11 @@ class pfcp_up_function_features_ie : public pfcp_ie {
uint8_t
iptv
:
1
;
uint8_t
iptv
:
1
;
uint8_t
ip6pl
:
1
;
uint8_t
ip6pl
:
1
;
uint8_t
tscu
:
1
;
uint8_t
tscu
:
1
;
uint8_t
mptcp
:
1
;
uint8_t
mptcp
:
1
;
}
bf
;
}
bf
;
uint8_t
b
;
uint8_t
b
;
}
u4
;
}
u4
;
union
{
union
{
struct
{
struct
{
uint8_t
atsss_ll
:
1
;
uint8_t
atsss_ll
:
1
;
uint8_t
qfqm
:
1
;
uint8_t
qfqm
:
1
;
...
@@ -2266,7 +2266,7 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2266,7 +2266,7 @@ class pfcp_up_function_features_ie : public pfcp_ie {
}
bf
;
}
bf
;
uint8_t
b
;
uint8_t
b
;
}
u5
;
}
u5
;
union
{
union
{
struct
{
struct
{
uint8_t
rttwp
:
1
;
uint8_t
rttwp
:
1
;
uint8_t
spare
:
7
;
uint8_t
spare
:
7
;
...
@@ -2277,12 +2277,12 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2277,12 +2277,12 @@ class pfcp_up_function_features_ie : public pfcp_ie {
//--------
//--------
explicit
pfcp_up_function_features_ie
(
const
pfcp
::
up_function_features_s
&
b
)
explicit
pfcp_up_function_features_ie
(
const
pfcp
::
up_function_features_s
&
b
)
:
pfcp_ie
(
PFCP_IE_UP_FUNCTION_FEATURES
)
{
:
pfcp_ie
(
PFCP_IE_UP_FUNCTION_FEATURES
)
{
u1
.
b
=
0
;
u1
.
b
=
0
;
u2
.
b
=
0
;
u2
.
b
=
0
;
u3
.
b
=
0
;
u3
.
b
=
0
;
u4
.
b
=
0
;
u4
.
b
=
0
;
u5
.
b
=
0
;
u5
.
b
=
0
;
u6
.
b
=
0
;
u6
.
b
=
0
;
u1
.
bf
.
bucp
=
b
.
bucp
;
u1
.
bf
.
bucp
=
b
.
bucp
;
u1
.
bf
.
ddnd
=
b
.
ddnd
;
u1
.
bf
.
ddnd
=
b
.
ddnd
;
...
@@ -2311,28 +2311,28 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2311,28 +2311,28 @@ class pfcp_up_function_features_ie : public pfcp_ie {
u3
.
bf
.
bundl
=
b
.
bundl
;
u3
.
bf
.
bundl
=
b
.
bundl
;
u3
.
bf
.
gcom
=
b
.
gcom
;
u3
.
bf
.
gcom
=
b
.
gcom
;
u4
.
bf
.
mpas
=
b
.
mpas
;
u4
.
bf
.
mpas
=
b
.
mpas
;
u4
.
bf
.
rttl
=
b
.
rttl
;
u4
.
bf
.
rttl
=
b
.
rttl
;
u4
.
bf
.
vtime
=
b
.
vtime
;
u4
.
bf
.
vtime
=
b
.
vtime
;
u4
.
bf
.
norp
=
b
.
norp
;
u4
.
bf
.
norp
=
b
.
norp
;
u4
.
bf
.
iptv
=
b
.
iptv
;
u4
.
bf
.
iptv
=
b
.
iptv
;
u4
.
bf
.
ip6pl
=
b
.
ip6pl
;
u4
.
bf
.
ip6pl
=
b
.
ip6pl
;
u4
.
bf
.
tscu
=
b
.
tscu
;
u4
.
bf
.
tscu
=
b
.
tscu
;
u4
.
bf
.
mptcp
=
b
.
mptcp
;
u4
.
bf
.
mptcp
=
b
.
mptcp
;
u5
.
bf
.
atsss_ll
=
b
.
atsss_ll
;
u5
.
bf
.
atsss_ll
=
b
.
atsss_ll
;
u5
.
bf
.
qfqm
=
b
.
qfqm
;
u5
.
bf
.
qfqm
=
b
.
qfqm
;
u5
.
bf
.
gpqm
=
b
.
gpqm
;
u5
.
bf
.
gpqm
=
b
.
gpqm
;
u5
.
bf
.
mt_edt
=
b
.
mt_edt
;
u5
.
bf
.
mt_edt
=
b
.
mt_edt
;
u5
.
bf
.
ciot
=
b
.
ciot
;
u5
.
bf
.
ciot
=
b
.
ciot
;
u5
.
bf
.
ethar
=
b
.
ethar
;
u5
.
bf
.
ethar
=
b
.
ethar
;
u5
.
bf
.
ddds
=
b
.
ddds
;
u5
.
bf
.
ddds
=
b
.
ddds
;
u5
.
bf
.
rds
=
b
.
rds
;
u5
.
bf
.
rds
=
b
.
rds
;
u6
.
bf
.
rttwp
=
b
.
rttwp
;
u6
.
bf
.
rttwp
=
b
.
rttwp
;
// tlv.set_length(2);
// tlv.set_length(2);
tlv
.
set_length
(
6
);
tlv
.
set_length
(
6
);
}
}
//--------
//--------
pfcp_up_function_features_ie
()
:
pfcp_ie
(
PFCP_IE_UP_FUNCTION_FEATURES
)
{
pfcp_up_function_features_ie
()
:
pfcp_ie
(
PFCP_IE_UP_FUNCTION_FEATURES
)
{
...
@@ -2343,8 +2343,8 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2343,8 +2343,8 @@ class pfcp_up_function_features_ie : public pfcp_ie {
u5
.
b
=
0
;
u5
.
b
=
0
;
u6
.
b
=
0
;
u6
.
b
=
0
;
// tlv.set_length(2);
// tlv.set_length(2);
tlv
.
set_length
(
6
);
tlv
.
set_length
(
6
);
}
}
//--------
//--------
explicit
pfcp_up_function_features_ie
(
const
pfcp_tlv
&
t
)
:
pfcp_ie
(
t
)
{
explicit
pfcp_up_function_features_ie
(
const
pfcp_tlv
&
t
)
:
pfcp_ie
(
t
)
{
...
@@ -2372,7 +2372,7 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2372,7 +2372,7 @@ class pfcp_up_function_features_ie : public pfcp_ie {
b
.
quoac
=
u2
.
bf
.
quoac
;
b
.
quoac
=
u2
.
bf
.
quoac
;
b
.
trace
=
u2
.
bf
.
trace
;
b
.
trace
=
u2
.
bf
.
trace
;
b
.
frrt
=
u2
.
bf
.
frrt
;
b
.
frrt
=
u2
.
bf
.
frrt
;
// b.spare = 0;
// b.spare = 0;
b
.
pfde
=
u2
.
bf
.
pfde
;
b
.
pfde
=
u2
.
bf
.
pfde
;
b
.
epfar
=
u2
.
bf
.
epfar
;
b
.
epfar
=
u2
.
bf
.
epfar
;
...
@@ -2385,32 +2385,32 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2385,32 +2385,32 @@ class pfcp_up_function_features_ie : public pfcp_ie {
b
.
bundl
=
u3
.
bf
.
bundl
;
b
.
bundl
=
u3
.
bf
.
bundl
;
b
.
gcom
=
u3
.
bf
.
gcom
;
b
.
gcom
=
u3
.
bf
.
gcom
;
b
.
mpas
=
u4
.
bf
.
mpas
;
b
.
mpas
=
u4
.
bf
.
mpas
;
b
.
rttl
=
u4
.
bf
.
rttl
;
b
.
rttl
=
u4
.
bf
.
rttl
;
b
.
vtime
=
u4
.
bf
.
vtime
;
b
.
vtime
=
u4
.
bf
.
vtime
;
b
.
norp
=
u4
.
bf
.
norp
;
b
.
norp
=
u4
.
bf
.
norp
;
b
.
iptv
=
u4
.
bf
.
iptv
;
b
.
iptv
=
u4
.
bf
.
iptv
;
b
.
ip6pl
=
u4
.
bf
.
ip6pl
;
b
.
ip6pl
=
u4
.
bf
.
ip6pl
;
b
.
tscu
=
u4
.
bf
.
tscu
;
b
.
tscu
=
u4
.
bf
.
tscu
;
b
.
mptcp
=
u4
.
bf
.
mptcp
;
b
.
mptcp
=
u4
.
bf
.
mptcp
;
b
.
atsss_ll
=
u5
.
bf
.
atsss_ll
;
b
.
atsss_ll
=
u5
.
bf
.
atsss_ll
;
b
.
qfqm
=
u5
.
bf
.
qfqm
;
b
.
qfqm
=
u5
.
bf
.
qfqm
;
b
.
gpqm
=
u5
.
bf
.
gpqm
;
b
.
gpqm
=
u5
.
bf
.
gpqm
;
b
.
mt_edt
=
u5
.
bf
.
mt_edt
;
b
.
mt_edt
=
u5
.
bf
.
mt_edt
;
b
.
ciot
=
u5
.
bf
.
ciot
;
b
.
ciot
=
u5
.
bf
.
ciot
;
b
.
ethar
=
u5
.
bf
.
ethar
;
b
.
ethar
=
u5
.
bf
.
ethar
;
b
.
ddds
=
u5
.
bf
.
ddds
;
b
.
ddds
=
u5
.
bf
.
ddds
;
b
.
rds
=
u5
.
bf
.
rds
;
b
.
rds
=
u5
.
bf
.
rds
;
b
.
rttwp
=
u6
.
bf
.
rttwp
;
b
.
rttwp
=
u6
.
bf
.
rttwp
;
b
.
spare
=
0
;
b
.
spare
=
0
;
}
}
//--------
//--------
void
dump_to
(
std
::
ostream
&
os
)
{
void
dump_to
(
std
::
ostream
&
os
)
{
// tlv.set_length(2);
// tlv.set_length(2);
tlv
.
set_length
(
6
);
tlv
.
set_length
(
6
);
tlv
.
dump_to
(
os
);
tlv
.
dump_to
(
os
);
os
.
write
(
reinterpret_cast
<
const
char
*>
(
&
u1
.
b
),
sizeof
(
u1
.
b
));
os
.
write
(
reinterpret_cast
<
const
char
*>
(
&
u1
.
b
),
sizeof
(
u1
.
b
));
...
@@ -2423,8 +2423,8 @@ class pfcp_up_function_features_ie : public pfcp_ie {
...
@@ -2423,8 +2423,8 @@ class pfcp_up_function_features_ie : public pfcp_ie {
//--------
//--------
void
load_from
(
std
::
istream
&
is
)
{
void
load_from
(
std
::
istream
&
is
)
{
// tlv.load_from(is);
// tlv.load_from(is);
// if (tlv.get_length() != 2) {
// if (tlv.get_length() != 2) {
if
(
tlv
.
get_length
()
!=
6
)
{
if
(
tlv
.
get_length
()
>
6
)
{
throw
pfcp_tlv_bad_length_exception
(
throw
pfcp_tlv_bad_length_exception
(
tlv
.
type
,
tlv
.
get_length
(),
__FILE__
,
__LINE__
);
tlv
.
type
,
tlv
.
get_length
(),
__FILE__
,
__LINE__
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment