view INSTALL.FreeBSD @ 1489:0210b996b8fa

Add rest of 3GPP TS 29.336 V15.7.0 (2019-09) Add AVPs from 3GPP TS 29.336: - IP-SM-GW-Number, OctetString, code 3100, section 6.4.14 - IP-SM-GW-Name, DiameterIdentity, code 3101, section 6.4.15 - User-Identifier, Grouped, code 3102, section 6.4.2 - Service-ID, Enumerated, code 3103, section 6.4.3 - SCS-Identity, OctetString, code 3104, section 6.4.4 - Service-Parameters, Grouped, code 3105, section 6.4.5 - T4-Parameters, Grouped, code 3106, section 6.4.6 - Service-Data, Grouped, code 3107, section 6.4.7 - T4-Data, Grouped, code 3108, section 6.4.8 - HSS-Cause, Unsigned32, code 3109, section 6.4.9 - SIR-Flags, Unsigned32, code 3110, section 6.4.10 - IP-SM-GW-Realm, DiameterIdentity, code 3112, section 6.4.18 - AESE-Communication-Pattern, Grouped, code 3113, section 8.4.25 - Communication-Pattern-Set, Grouped, code 3114, section 8.4.26 - Periodic-Communication-Indicator, Unsigned32, code 3115, section 8.4.27 - Communication-Duration-Time, Unsigned32, code 3116, section 8.4.28 - Periodic-time, Unsigned32, code 3117, section 8.4.29 - Scheduled-Communication-Time, Grouped, code 3118, section 8.4.30 - Stationary-Indication, Unsigned32, code 3119, section 8.4.31 - AESE-Communication-Pattern-Config-Status, Grouped, code 3120, section 8.4.32 - AESE-Error-Report, Grouped, code 3121, section 8.4.33 - Monitoring-Event-Configuration, Grouped, code 3122, section 8.4.2 - Monitoring-Event-Report, Grouped, code 3123, section 8.4.3 - SCEF-Reference-ID, Unsigned32, code 3124, section 8.4.4 - SCEF-ID, DiameterIdentity, code 3125, section 8.4.5 - SCEF-Reference-ID-for-Deletion, Unsigned32, code 3126, section 8.4.6 - Monitoring-Type, Unsigned32, code 3127, section 8.4.7 - Maximum-Number-of-Reports, Unsigned32, code 3128, section 8.4.8 - UE-Reachability-Configuration, Grouped, code 3129, section 8.4.9 - Monitoring-Duration, Time, code 3130, section 8.4.10 - Maximum-Detection-Time, Unsigned32, code 3131, section 8.4.11 - Reachability-Type, Unsigned32, code 3132, section 8.4.12 - Maximum-Latency, Unsigned32, code 3133, section 8.4.13 - Maximum-Response-Time, Unsigned32, code 3134, section 8.4.14 - Location-Information-Configuration, Grouped, code 3135, section 8.4.15 - MONTE-Location-Type, Unsigned32, code 3136, section 8.4.16 - Accuracy, Unsigned32, code 3137, section 8.4.17 - Association-Type, Unsigned32, code 3138, section 8.4.18 - Roaming-Information, Unsigned32, code 3139, section 8.4.19 - Reachability-Information, Unsigned32, code 3140, section 8.4.20 - IMEI-Change, Unsigned32, code 3141, section 8.4.22 - Monitoring-Event-Config-Status, Grouped, code 3142, section 8.4.24 - Supported-Services, Grouped, code 3143, section 8.4.40 - Supported-Monitoring-Events, Unsigned64, code 3144, section 8.4.41 - CIR-Flags, Unsigned32, code 3145, section 8.4.39 - Service-Result, Grouped, code 3146, section 8.4.37 - Service-Result-Code, Unsigned32, code 3147, section 8.4.38 - Reference-ID-Validity-Time, Time, code 3148, section 8.4.42 - Event-Handling, Unsigned32, code 3149, section 8.4.43 - NIDD-Authorization-Request, Grouped, code 3150, section 8.4.44 - NIDD-Authorization-Response, Grouped, code 3151, section 8.4.45 - Service-Report, Grouped, code 3152, section 8.4.47 - Node-Type, Unsigned32, code 3153, section 8.4.48 - S6t-HSS-Cause, Unsigned32, code 3154, section 8.4.50 - Enhanced-Coverage-Restriction, Grouped, code 3155, section 8.4.51 - Enhanced-Coverage-Restriction-Data, Grouped, code 3156, section 8.4.52 - Restricted-PLMN-List, Grouped, code 3157, section 8.4.53 - Allowed-PLMN-List, Grouped, code 3158, section 8.4.54 - Requested-Validity-Time, Time, code 3159, section 8.4.55 - Granted-Validity-Time, Time, code 3160, section 8.4.56 - NIDD-Authorization-Update, Grouped, code 3161, section 8.4.57 - Loss-Of-Connectivity-Reason, Unsigned32, code 3162, section 8.4.58 - Group-Reporting-Guard-Timer, Unsigned32, code 3163, section 8.4.59 - CIA-Flags, Unsigned32, code 3164, section 8.4.60 - Group-Monitoring-Event-Report, Grouped, code 3165, section 8.4.61 - Group-Monitoring-Event-Report-Item, Grouped, code 3166, section 8.4.62 - RIR-Flags, Unsigned32, code 3167, section 8.4.63 - Type-Of-External-Identifier, Unsigned32, code 3168, section 8.4.64 - APN-Validity-Time, Grouped, code 3169, section 8.4.65 - Suggested-Network-Configuration, Grouped, code 3170, section 8.4.66 - Monitoring-Event-Report-Status, Grouped, code 3171, section 8.4.67 - PLMN-ID-Requested, Enumerated, code 3172, section 8.4.68 - AdditionalIdentifiers, Grouped, code 3173, section 8.4.69 - NIR-Flags, Unsigned32, code 3174, section 8.4.70 - Reporting-Time-Stamp, Time, code 3175, section 8.4.71 - NIA-Flags, Unsigned32, code 3176, section 8.4.72 - Group-User-Identifier, Grouped, code 3177, section 8.4.73 - MTC-Provider-Info, Grouped, code 3178, section 8.4.74 - MTC-Provider-ID, UTF8String, code 3179, section 8.4.75
author Luke Mewburn <luke@mewburn.net>
date Mon, 30 Mar 2020 09:49:33 +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"