view INSTALL.FreeBSD @ 1449:ffe2f27e00e5

Update to 3GPP TS 29.272 V15.10.0 (2019-12) Add Restoration-Priority, Unsigned32, code 1663, section 7.3.174 Add SGs-MME-Identity, UTF8String, code 1664, section 7.3.175 Add SIPTO-Local-Network-Permission, Unsigned32, code 1665, section 7.3.176 Add Coupled-Node-Diameter-ID, DiameterIdentity, code 1666, section 7.3.177 Add WLAN-offloadability, Grouped, code 1667, section 7.3.181 Add WLAN-offloadability-EUTRAN, Unsigned32, code 1668, section 7.3.182 Add WLAN-offloadability-UTRAN, Unsigned32, code 1669, section 7.3.183 Add Reset-ID, OctetString, code 1670, section 7.3.184 Add MDT-Allowed-PLMN-Id, OctetString, code 1671, section 7.3.185 Add Adjacent-PLMNs, Grouped, code 1672, section 7.3.186 Add Adjacent-Access-Restriction-Data, Grouped, code 1673, section 7.3.187 Add DL-Buffering-Suggested-Packet-Count, Integer32, code 1674, section 7.3.188 Add IMSI-Group-Id, Grouped, code 1675, section 7.3.189 Add Group-Service-Id, Unsigned32, code 1676, section 7.3.190 Add Group-PLMN-Id, OctetString, code 1677, section 7.3.191 Add Local-Group-Id, OctetString, code 1678, section 7.3.192 Add AIR-Flags, Unsigned32, code 1679, section 7.3.201 Add UE-Usage-Type, Unsigned32, code 1680, section 7.3.202 Add Non-IP-PDN-Type-Indicator, Enumerated, code 1681, section 7.3.204 Add Non-IP-Data-Delivery-Mechanism, Unsigned32, code 1682, section 7.3.205 Add Additional-Context-ID, Unsigned32, code 1683, section 7.3.206 Add SCEF-Realm, DiameterIdentity, code 1684, section 7.3.207 Add Subscription-Data-Deletion, Grouped, code 1685, section 7.3.208 Add Emergency-Info, Grouped, code 1687, section 7.3.210 Add V2X-Subscription-Data, Grouped, code 1688, section 7.3.212 Add V2X-Permission, Unsigned32, code 1689, section 7.3.213 Add PDN-Connection-Continuity, Unsigned32, code 1690, section 7.3.214 Add eDRX-Cycle-Length, Grouped, code 1691, section 7.3.215 Add eDRX-Cycle-Length-Value, OctetString, code 1692, section 7.3.216 Add UE-PC5-AMBR, Unsigned32, code 1693, section 7.3.217 Add MBSFN-Area, Grouped, code 1694, section 7.3.219 Add MBSFN-Area-ID, Unsigned32, code 1695, section 7.3.220 Add Carrier-Frequency, Unsigned32, code 1696, section 7.3.221 Add RDS-Indicator, Enumerated, code 1697, section 7.3.222 Add Service-Gap-Time, Unsigned32, code 1698, section 7.3.223 Add Aerial-UE-Subscription-Information, Unsigned32, code 1699, section 7.3.224 Add Broadcast-Location-Assistance-Data-Types, Unsigned64, code 1700, section 7.3.225 Add Paging-Time-Window, Grouped, code 1701, section 7.3.226 Add Operation-Mode, Unsigned32, code 1702, section 7.3.227 Add Paging-Time-Window-Length, OctetString, code 1703, section 7.3.228 Add Core-Network-Restrictions, Unsigned32, code 1704, section 7.3.230 Add eDRX-Related-RAT, Grouped, code 1705, section 7.3.229 Add Interworking-5GS-Indicator, Enumerated, code 1706, section 7.3.231 Add Preferred-Data-Mode, Unsigned32, code 1686, section 7.3.209 3GPP TS 29.272 table 7.3.1/1 row Preferred-Data-Mode incorrectly has value type Grouped instead of Unsigned32, conflicting with clause 7.3.209.
author Luke Mewburn <luke@mewburn.net>
date Thu, 27 Feb 2020 23:20:31 +1100
parents a0ab56aa089f
children 699c3fb0c57b
line wrap: on
line source

See INSTALL file for general instructions on building freeDiameter.

------------------
QUICK INSTRUCTIONS
------------------

On FreeBSD-8.0 at least the following ports packages were required (should be same on FreeBSD-7.x):
 cmake flex bison gnutls

Then the cmake command had to look like:
 cmake -DFLEX_EXECUTABLE:FILEPATH=/usr/local/bin/flex -DSCTP_USE_MAPPED_ADDRESSES:BOOL=ON ...


---------------------
COMPLETE INSTRUCTIONS
---------------------

1) If you don't have freeBSD yet:
   Install minimal system + ports using initial installer /usr/sbin/sysinstall


2) Install 'cmake'

 a) from sources:
    # cd /usr/ports/devel/cmake
    # make install
    
 b) or from package (don't forget to set your PACKAGEROOT appropriately. Ex: set PACKAGEROOT=ftp://ftp.jp.freebsd.org):
    # pkg_add -v -r cmake
	
 
3) Install 'mercurial' (optional)
  (replace 'cmake' by 'mercurial' in the previous command) 

4) Install 'flex' and 'bison', same way.

5) Install 'gnutls' and 'libidn', same way also.

6) Retrieve freeDiameter source code:
   # cd ~
   # /usr/local/bin/hg clone http://www.freediameter.net/hg/freeDiameter/
   
6b) Make a build directory
   # mkdir fD-build
   # cd fD-build
   
7) Run cmake for freeDiameter (add other flags as you see fit, see INSTALL for more details)
   # /usr/local/bin/cmake -DFLEX_EXECUTABLE:FILEPATH=/usr/local/bin/flex -DSCTP_USE_MAPPED_ADDRESSES:BOOL=ON ../freeDiameter

8) Compile, optionnaly test
   # make
   # make test

9) Install
   # make install
   
10) Run (the install path can be changed during cmake step):
   # /usr/local/bin/freeDiameterd --help


------------------------------
app_acct test ADDITIONAL STEPS
------------------------------
Here is additional steps in order to run the test for app_acct

1) Install the required packages
  # pkg_add -v -r postgresql84-client
  # pkg_add -v -r postgresql84-server

2) Prepare access to the database:
  # echo postgresql_enable=YES >> /etc/rc.conf
  # /usr/local/etc/rc.d/postgresql initdb
  # su - pgsql
  > /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
  > /usr/local/bin/createuser root
  Shall the new user be allowed to create databases? (y/n) y
  > logout
  # /usr/local/bin/createdb root
  # /usr/local/bin/psql root
  root=# CREATE TABLE incoming_test (
  root(# recorded_on timestamp with time zone NOT NULL,
  root(# "Accounting-Record-Type" integer,
  root(# "Session-Id" bytea,
  root(# "Accounting-Record-Number" integer,
  root(# "Route-Record1" bytea,
  root(# "Route-Record2" bytea,
  root(# "Route-Record3" bytea,
  root(# "Route-Record4" bytea );
  root=# \q

3) configure the sources
  # make edit_cache
   BUILD_APP_ACCT:BOOL=ON
   TEST_APP_ACCT:BOOL=ON
   TEST_APP_ACCT_CONNINFO:STRING="user=root dbname=root"
   
4) run the test
  # tests/testappacct -d
  or
  # make test
  
  
----------------------------------
Segmentation fault on program exit
----------------------------------

In case you encounter a segmentation fault on program termination like this:
  [...]
  freeDiameterd framework is terminated.
  Segmentation fault: 11 (core dumped)

with a backtrace like this:
  #0  0x0000000801a414a0 in ?? ()
  #1  0x0000000800f99274 in __cxa_finalize () from /lib/libc.so.7
  #2  0x0000000800f460b7 in exit () from /lib/libc.so.7
  
You may try to add the following compilation directive in cmake:
  -DSKIP_DLCLOSE:BOOL=ON

Note: this segmentation fault was experienced with:
 - FreeBSD 8.1
 - 64 bits architecture only.
 - Profiling mode only.


"Welcome to our mercurial repository"