view INSTALL.FreeBSD @ 1488:431ad99c39fe

Add 3GPP TS 29.273 V15.4.0 (2019-09) Add AVPs from 3GPP TS 29.273: - 3GPP-AAA-Server-Name, DiameterIdentity, code 318, section 8.2.3.24 - Non-3GPP-User-Data, Grouped, code 1500, section 8.2.3.1 - Non-3GPP-IP-Access, Enumerated, code 1501, section 8.2.3.3 - Non-3GPP-IP-Access-APN, Enumerated, code 1502, section 8.2.3.4 - AN-Trusted, Enumerated, code 1503, section 5.2.3.9 - ANID, UTF8String, code 1504, section 5.2.3.7 - Trace-Info, Grouped, code 1505, section 8.2.3.1.3 - MIP-FA-RK, OctetString, code 1506, section 5.2.3.12 - MIP-FA-RK-SPI, Unsigned32, code 1507, section 5.2.3.13 - PPR-Flags, Unsigned32, code 1508, section 8.2.3.17 - WLAN-Identifier, Grouped, code 1509, section 5.2.3.18 - TWAN-Access-Info, Grouped, code 1510, section 8.2.3.19 - Access-Authorization-Flags, Unsigned32, code 1511, section 8.2.3.20 - TWAN-Default-APN-Context-Id, Unsigned32, code 1512, section 8.2.3.18 - Full-Network-Name, OctetString, code 1516, section 5.2.3.14 - Short-Network-Name, OctetString, code 1517, section 5.2.3.15 - AAA-Failure-Indication, Unsigned32, code 1518, section 8.2.3.21 - Transport-Access-Type, Enumerated, code 1519, section 5.2.3.19 - DER-Flags, Unsigned32, code 1520, section 5.2.3.20 - DEA-Flags, Unsigned32, code 1521, section 5.2.3.21 - RAR-Flags, Unsigned32, code 1522, section 9.2.3.1.5 - DER-S6b-Flags, Unsigned32, code 1523, section 9.2.3.7 - SSID, UTF8String, code 1524, section 5.2.3.22 - HESSID, UTF8String, code 1525, section 5.2.3.23 - Access-Network-Info, Grouped, code 1526, section 5.2.3.24 - TWAN-Connection-Mode, Unsigned32, code 1527, section 5.2.3.25 - TWAN-Connectivity-Parameters, Grouped, code 1528, section 5.2.3.26 - Connectivity-Flags, Unsigned32, code 1529, section 5.2.3.27 - TWAN-PCO, OctetString, code 1530, section 5.2.3.28 - TWAG-CP-Address, Address, code 1531, section 5.2.3.29 - TWAG-UP-Address, UTF8String, code 1532, section 5.2.3.30 - TWAN-S2a-Failure-Cause, Unsigned32, code 1533, section 5.2.3.31 - SM-Back-Off-Timer, Unsigned32, code 1534, section 5.2.3.32 - WLCP-Key, OctetString, code 1535, section 5.2.3.33 - Origination-Time-Stamp, Unsigned64, code 1536, section 9.2.3.2.6 - Maximum-Wait-Time, Unsigned32, code 1537, section 9.2.3.2.7 - Emergency-Services, Unsigned32, code 1538, section 7.2.3.4 - AAR-Flags, Unsigned32, code 1539, section 7.2.3.5 - IMEI-Check-In-VPLMN-Result, Unsigned32, code 1540, section 5.2.3.35 - ERP-Authorization, Unsigned32, code 1541, section 8.2.3.27 Not adding Trust-Relationship-Update (1515) because that was only present in one published version: 3GPP TS 29.273 V11.3.0 (2012-09)
author Luke Mewburn <luke@mewburn.net>
date Fri, 27 Mar 2020 16:58:02 +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"