Changes of Revision 455

open5gs_2.6.4.99.8a3db.202309182026.dsc -> open5gs_2.6.4.102.227d.202309192026.dsc Changed
x
 
1
@@ -2,7 +2,7 @@
2
 Source: open5gs
3
 Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
4
 Architecture: any
5
-Version: 2.6.4.99.8a3db.202309182026
6
+Version: 2.6.4.102.227d.202309192026
7
 Maintainer: Harald Welte <laforge@gnumonks.org>
8
 Uploaders: Sukchan Lee <acetcom@gmail.com>
9
 Homepage: https://open5gs.org
10
@@ -31,8 +31,8 @@
11
  open5gs-udr deb net optional arch=any
12
  open5gs-upf deb net optional arch=any
13
 Checksums-Sha1:
14
- 0a9cb96249f94a267ae03da4f1f9e468fda8665c 14393064 open5gs_2.6.4.99.8a3db.202309182026.tar.xz
15
+ e48676050b307feae98d189a586413387c1eb065 14393168 open5gs_2.6.4.102.227d.202309192026.tar.xz
16
 Checksums-Sha256:
17
- 9947990a2e048a29a9f03fdc2e46afba812d7b86836395884f9f8236d39ee767 14393064 open5gs_2.6.4.99.8a3db.202309182026.tar.xz
18
+ dc150afee3e848afd110fd96cb7e58d7ed4a7e4c3542407a21993d3229f102c2 14393168 open5gs_2.6.4.102.227d.202309192026.tar.xz
19
 Files:
20
- f65e3fedd2bb2e920b19413583e9a114 14393064 open5gs_2.6.4.99.8a3db.202309182026.tar.xz
21
+ 6652b53dbc9ea0f8c27c7bb30ef2efbf 14393168 open5gs_2.6.4.102.227d.202309192026.tar.xz
22
open5gs_2.6.4.99.8a3db.202309182026.tar.xz/.tarball-version -> open5gs_2.6.4.102.227d.202309192026.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-2.6.4.99-8a3db.202309182026
3
+2.6.4.102-227d.202309192026
4
open5gs_2.6.4.99.8a3db.202309182026.tar.xz/debian/changelog -> open5gs_2.6.4.102.227d.202309192026.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.6.4.99.8a3db.202309182026) unstable; urgency=medium
3
+open5gs (2.6.4.102.227d.202309192026) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom nightly feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Mon, 18 Sep 2023 20:28:37 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Tue, 19 Sep 2023 20:27:45 +0000
9
 
10
 open5gs (2.6.4) unstable; urgency=medium
11
 
12
open5gs_2.6.4.99.8a3db.202309182026.tar.xz/docs/assets/webui/install -> open5gs_2.6.4.102.227d.202309192026.tar.xz/docs/assets/webui/install Changed
9
 
1
@@ -253,6 +253,7 @@
2
 exec_cmd "cd ./${PACKAGE}-${VERSION}/webui && npm clean-install && npm run build"
3
 
4
 print_status "Install the Open5GS WebUI..."
5
+exec_cmd "mkdir -p /usr/lib/node_modules"
6
 exec_cmd "mv ./${PACKAGE}-${VERSION}/webui /usr/lib/node_modules/${PACKAGE}"
7
 exec_cmd_nobail "chown -R open5gs:open5gs /usr/lib/node_modules/${PACKAGE}"
8
 
9
open5gs_2.6.4.99.8a3db.202309182026.tar.xz/lib/pfcp/context.c -> open5gs_2.6.4.102.227d.202309192026.tar.xz/lib/pfcp/context.c Changed
113
 
1
@@ -143,6 +143,62 @@
2
     return OGS_OK;
3
 }
4
 
5
+static int ogs_pfcp_check_subnet_overlapping(void)
6
+{
7
+    ogs_pfcp_subnet_t *subnet = NULL;
8
+    ogs_pfcp_subnet_t *next_subnet = NULL;
9
+    char buf1OGS_ADDRSTRLEN;
10
+    char buf2OGS_ADDRSTRLEN;
11
+    int rv = OGS_OK;
12
+
13
+    ogs_list_for_each(&self.subnet_list, subnet){
14
+        for (next_subnet = ogs_list_next(subnet); (next_subnet);
15
+                next_subnet = ogs_list_next(next_subnet)) {
16
+            if (strcmp(subnet->dnn, next_subnet->dnn) == 0 &&
17
+                subnet->gw.family == next_subnet->gw.family) {
18
+                uint32_t *addr1 = subnet->sub.sub;
19
+                uint32_t *addr2 = next_subnet->sub.sub;
20
+                uint32_t mask4;
21
+                int i;
22
+                /* Get smaller subnet mask for IPv4 or IPv6 */
23
+                for (i = 0; i < 4 ; i++) {
24
+                    maski = (subnet->sub.maski & next_subnet->sub.maski);
25
+                }
26
+                /* Compare masked subnets if they overlap */
27
+                if (subnet->gw.family == AF_INET) {
28
+                    if ((addr10 & mask0) == (addr20 & mask0)) {
29
+                        ogs_error("Overlapping subnets in SMF configuration file: %s/%d and %s/%d",
30
+                                OGS_INET_NTOP(&subnet->gw.sub0, buf1),
31
+                                subnet->prefixlen,
32
+                                OGS_INET_NTOP(&next_subnet->gw.sub0, buf2),
33
+                                next_subnet->prefixlen);
34
+                        rv = OGS_ERROR;
35
+                    }
36
+                } else if (subnet->gw.family == AF_INET6) {
37
+                    if (((addr10 & mask0) == (addr20 & mask0)) &&
38
+                        ((addr11 & mask1) == (addr21 & mask1)) &&
39
+                        ((addr12 & mask2) == (addr22 & mask2)) &&
40
+                        ((addr13 & mask3) == (addr23 & mask3))) {
41
+                        ogs_error("Overlapping subnets in SMF configuration file: %s/%d and %s/%d",
42
+                                OGS_INET6_NTOP(&subnet->gw.sub0, buf1),
43
+                                subnet->prefixlen,
44
+                                OGS_INET6_NTOP(&next_subnet->gw.sub0, buf2),
45
+                                next_subnet->prefixlen);
46
+                        rv = OGS_ERROR;
47
+                    }
48
+                } else {
49
+                    ogs_error("Invalid family in subnet configuration %d",
50
+                            subnet->gw.family);
51
+                    rv = OGS_ERROR;
52
+                    ogs_assert_if_reached();
53
+                }
54
+            }
55
+        }
56
+    }
57
+
58
+    return rv;
59
+}
60
+
61
 static int ogs_pfcp_context_validation(const char *local)
62
 {
63
     if (ogs_list_first(&self.pfcp_list) == NULL &&
64
@@ -150,6 +206,9 @@
65
         ogs_error("No %s.pfcp: in '%s'", local, ogs_app()->file);
66
         return OGS_ERROR;
67
     }
68
+    if (ogs_pfcp_check_subnet_overlapping() != OGS_OK)
69
+        return OGS_ERROR;
70
+
71
     return OGS_OK;
72
 }
73
 
74
@@ -1892,16 +1951,8 @@
75
         subnet = ogs_pfcp_find_subnet(family);
76
 
77
     if (subnet == NULL) {
78
-        ogs_error("CHECK CONFIGURATION: Cannot find subnet family:%d, dnn:%s",
79
-                    family, dnn ? dnn : "No DNN");
80
-        ogs_error("Please add FALLBACK subnet as below.");
81
-        ogs_error("    subnet:");
82
-        if (family == AF_INET)
83
-            ogs_error("     - addr: 10.50.0.1/16");
84
-        else if (family == AF_INET6)
85
-            ogs_error("     - addr: 2001:db8:abcd::1/48");
86
-
87
-        *cause_value = OGS_PFCP_CAUSE_SYSTEM_FAILURE;
88
+        ogs_error("All IP addresses in all subnets are occupied");
89
+        *cause_value = OGS_PFCP_CAUSE_NO_RESOURCES_AVAILABLE;
90
         return NULL;
91
     }
92
 
93
@@ -2062,7 +2113,8 @@
94
 
95
     ogs_list_for_each(&self.subnet_list, subnet) {
96
         if ((subnet->family == AF_UNSPEC || subnet->family == family) &&
97
-            (strlen(subnet->dnn) == 0))
98
+            (strlen(subnet->dnn) == 0) &&
99
+            subnet->pool.avail)
100
             break;
101
     }
102
 
103
@@ -2079,7 +2131,8 @@
104
     ogs_list_for_each(&self.subnet_list, subnet) {
105
         if ((subnet->family == AF_UNSPEC || subnet->family == family) &&
106
             (strlen(subnet->dnn) == 0 ||
107
-                (strlen(subnet->dnn) && ogs_strcasecmp(subnet->dnn, dnn) == 0)))
108
+                (strlen(subnet->dnn) && ogs_strcasecmp(subnet->dnn, dnn) == 0)) &&
109
+            subnet->pool.avail)
110
             break;
111
     }
112
 
113