view INSTALL.FreeBSD @ 1473:8f953829c5d3

Update to 3GPP TS 29.212 V15.9.0 (2019-12) Update sections for various AVPs that were moved from section 5 to section 5a, 5b, or 5c. Add AVPs from 3GPP TS 29.212 V15.9.0 (2019-12): - Credit-Management-Status, Unsigned32, code 1082, section 5.3.102 - AN-GW-Status, Enumerated, code 2811, section 5.3.100 - User-Location-Info-Time, Time, code 2812, section 5.3.101 - CS-Service-Resource-Report, Grouped, code 2813, section E.6.3.6 - CS-Service-Resource-Failure-Cause, Enumerated, code 2814, section E.6.3.5 - CS-Service-Resource-Result-Operation, Enumerated, code 2815, section E.6.3.4 - Default-QoS-Information, Grouped, code 2816, section 5.3.103 - Default-QoS-Name, UTF8String, code 2817, section 5.3.104 - Conditional-APN-Aggregate-Max-Bitrate, Grouped, code 2818, section 5.3.105 - RAN-NAS-Release-Cause, OctetString, code 2819, section 5.3.106 - Presence-Reporting-Area-Elements-List, OctetString, code 2820, section 5.3.107 - Presence-Reporting-Area-Identifier, OctetString, code 2821, section 5.3.108 - Presence-Reporting-Area-Information, Grouped, code 2822, section 5.3.109 - Presence-Reporting-Area-Status, Unsigned32, code 2823, section 5.3.110 - NetLoc-Access-Support, Unsigned32, code 2824, section 5.3.111 - Fixed-User-Location-Info, Grouped, code 2825, section 5.3.112 - PCSCF-Restoration-Indication, Unsigned32, code 2826, section 5.3.113 - IP-CAN-Session-Charging-Scope, Enumerated, code 2827, section 5.3.114 - Monitoring-Flags, Unsigned32, code 2828, section 5.3.115 - Default-Access, Enumerated, code 2829, section 5.3.120 - NBIFOM-Mode, Enumerated, code 2830, section 5.3.117 - NBIFOM-Support, Enumerated, code 2831, section 5.3.116 - RAN-Rule-Support, Unsigned32, code 2832, section 5.3.122 - Access-Availability-Change-Reason, Unsigned32, code 2833, section 5.3.121 - Routing-Rule-Failure-Code, Unsigned32, code 2834, section 5.3.119 - Routing-Rule-Report, Grouped, code 2835, section 5.3.118 - Traffic-Steering-Policy-Identifier-DL, OctetString, code 2836, section 5.3.123 - Traffic-Steering-Policy-Identifier-UL, OctetString, code 2837, section 5.3.124 - Request-Type, Unsigned32, code 2838, section 5c.3.2 - Execution-Time, Time, code 2839, section 5.3.127 - Conditional-Policy-Information, Grouped, code 2840, section 5.3.128 - Resource-Release-Notification, Enumerated, code 2841, section 5.3.125 - Removal-Of-Access, Enumerated, code 2842, section 5.3.126 - TCP-Source-Port, Unsigned32, code 2843, section 5.3.129 - Default-Bearer-Indication, Enumerated, code 2844, section 5.3.132 - PRA-Install, Grouped, code 2845, section 5.3.130 - PRA-Remove, Grouped, code 2846, section 5.3.131 - 3GPP-PS-Data-Off-Status, Enumerated, code 2847, section 5.3.133 - Extended-APN-AMBR-DL, Unsigned32, code 2848, section 5.3.134 - Extended-APN-AMBR-UL, Unsigned32, code 2849, section 5.3.135 - Extended-GBR-DL, Unsigned32, code 2850, section 5.3.136 - Extended-GBR-UL, Unsigned32, code 2851, section 5.3.137 - Max-PLR-DL, Float32, code 2852, section 5.3.138 - Max-PLR-UL, Float32, code 2853, section 5.3.139 - UE-Status, Unsigned32, code 2854, section 5.3.140 - Presence-Reporting-Area-Node, Unsigned32, code 2855, section 5.3.141 Set Must AVP Flag M (Mandatory) per 3GPP TS 29.212 Table 5b.3.0.1 for: - ADC-Rule-Install, Grouped, code 1092, section 5b.3.1 - ADC-Rule-Remove, Grouped, code 1093, section 5b.3.2 - ADC-Rule-Definition, Grouped, code 1094, section 5b.3.3 - ADC-Rule-Base-Name, UTF8String, code 1095, section 5b.3.4 - ADC-Rule-Name, OctetString, code 1096, section 5b.3.5 - ADC-Rule-Report, Grouped, code 1097, section 5b.3.6 Retain ADC-Revalidation-Time, Time, code 2801, section 5.3.93 Removed in 3GPP TS 29.212 V12.1.0 (2013-06). Add HeNB-BBF-FQDN, UTF8String, code 2803, section 5.3.94 Removed in 3GPP TS 29.212 V11.8.0 (2013-03).
author Luke Mewburn <luke@mewburn.net>
date Wed, 18 Mar 2020 14:06:08 +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"