view INSTALL.FreeBSD @ 1513:73e563165594

Add 3GPP TS 29.468 V15.8.0 (2019-12) Add AVPs: - BMSC-Address, Address, code 3500, section 6.4.2 - BMSC-Port, Unsigned32, code 3501, section 6.4.3 - Common-Tunnel-Endpoint-Identifier, OctetString, code 3524, section 6.4.26 - FEC-Request, OctetString, code 3525, section 6.4.27 - FEC-Result, Unsigned32, code 3531, section 6.4.33 - Local-M1-Information, Grouped, code 3518, section 6.4.20 - Local-MB2-U-Information, Grouped, code 3519, section 6.4.21 - MB2U-Security, Unsigned32, code 3517, section 6.4.19 - MBMS-Bearer-Event, Unsigned32, code 3502, section 6.4.4 - MBMS-Bearer-Event-Notification, Grouped, code 3503, section 6.4.5 - MBMS-Bearer-Request, Grouped, code 3504, section 6.4.6 - MBMS-Bearer-Response, Grouped, code 3505, section 6.4.7 - MBMS-Bearer-Result, Unsigned32, code 3506, section 6.4.8 - MBMS-eNB-IP-Multicast-Address, Address, code 3520, section 6.4.22 - MBMS-eNB-IPv6-Multicast-Address, Address, code 3521, section 6.4.23 - MBMS-GW-SSM-IP-Address-29.468, Address, code 3522, section 6.4.24 - MBMS-GW-SSM-IPv6-Address-29.468, Address, code 3523, section 6.4.25 - MBMS-Start-Time, Time, code 3507, section 6.4.9 - Radio-Frequency-29.468, Unsigned32, code 3508, section 6.4.10 - ROHC-Full-Header-Periodicity, Float32, code 3527, section 6.4.29 - ROHC-Max-CID, Unsigned32, code 3532, section 6.4.34 - ROHC-Profile, Unsigned32, code 3528, section 6.4.30 - ROHC-Request, Grouped, code 3526, section 6.4.28 - ROHC-Result, Unsigned32, code 3530, section 6.4.32 - TMGI-Allocation-Request, Grouped, code 3509, section 6.4.11 - TMGI-Allocation-Response, Grouped, code 3510, section 6.4.12 - TMGI-Allocation-Result, Unsigned32, code 3511, section 6.4.13 - TMGI-Deallocation-Request, Grouped, code 3512, section 6.4.14 - TMGI-Deallocation-Response, Grouped, code 3513, section 6.4.15 - TMGI-Deallocation-Result, Unsigned32, code 3514, section 6.4.16 - TMGI-Expiry, Grouped, code 3515, section 6.4.17 - TMGI-Number, Unsigned32, code 3516, section 6.4.18 - Userplane-Protocol-Result, Grouped, code 3529, section 6.4.31 Note: Name conflict with 3GPP TS 29.061 MBMS-GW-SSM-IP-Address (924). 3GPP TS 29.061 V10.4.0 (2011-09) CR 0355 added MBMS-GW-SSM-IP-Address (924). 3GPP TS 29.468 V14.0.0 (2016-12) CR 0021 added MBMS-GW-SSM-IP-Address (3522). Fix: MBMS-GW-SSM-IP-Address (3522) renamed to MBMS-GW-SSM-IP-Address-29.468 (3522). Note: Name conflict with 3GPP TS 29.061 MBMS-GW-SSM-IPv6-Address (925). 3GPP TS 29.061 V10.4.0 (2011-09) CR 0355 added MBMS-GW-SSM-IPv6-Address (925). 3GPP TS 29.468 V14.0.0 (2016-12) CR 0021 added MBMS-GW-SSM-IPv6-Address (3523). Fix: MBMS-GW-SSM-IPv6-Address (3523) renamed to MBMS-GW-SSM-IPv6-Address-29.468 (3523). Note: Name conflict with 3GPP TS 32.299 Radio-Frequency (3462). 3GPP TS 29.468 V12.0.0 (2014-09) added Radio-Frequency (3508). 3GPP TS 32.299 V13.1.0 (2015-06) CR 0638 added Radio-Frequency (3462). Fix: Radio-Frequency (3508) renamed to Radio-Frequency-29.468 (3508).
author Luke Mewburn <luke@mewburn.net>
date Tue, 07 Apr 2020 19:38:33 +1000
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"