Commit Graph

24 Commits

Author SHA1 Message Date
Oliver Smith f8fe1329e2 regen_makefile.sh: set executable name explicitly
Set the executable name in each regen_makefile.sh explicitly with -e,
instead of having it set indirectly from the first .ttcn file. Make it
consistent by placing the name on top of each of these files.

Fix for warning:
ttcn3_makefilegen: warning: File `BSC_Tests.ttcn' was given more than once for the Makefile.

Related: OS#5252
Change-Id: I5ed03f8f3ed905483620dc7bae33b617bbb8507f
2021-10-13 11:12:22 +02:00
Oliver Smith 2e0e624060 regen_makefile.sh: files/flags in separate lines
Make all regen_makefile.sh more readable and diff friendly by moving
each entry in FILES and CPPFLAGS_TTCN3 into separate lines. Order
entries alphabetically.

Related: OS#5252
Change-Id: I6b6866eb9f6ec6232e4ae434517457a4c8c1c050
2021-10-12 16:35:01 +02:00
Alexander Couzens 6a363196f4 fr/fr-net: use correct DLCI range for test cases
DLCIs are only valid >= 16.

Change-Id: Ia155f346beb4f2be1392d3204b73a0d3b00aaa08
2021-08-12 02:11:26 +00:00
Alexander Couzens bd6e9a1da9 RAW_NS/NS_Provider_IPL4: allow to use the new NSVC interface
RAW_NS used previous a single TTCN3 port for a single UDP port
(source/listen side).
This has the limitation that only a single NSVC could be tested for a
local UDP port. However SNS tests require multiple NSVCs over a single UDP port.
NS_Provider_IPL4 already supports multiple NSVCs for the NS_Emulation.
Extend the support in NS_Provider_IPL4 to also allow RAW_NS to use
multiple NSVCs.

Related: OS#5036
Change-Id: Iafd9310e04066958914201da0cbdcd563bd5c976
2021-06-15 20:20:44 +00:00
Harald Welte 120fe5d313 fr: Use dumpcap instead lf tcpdump to capture hdlc net-devices
Like GBProxy_Tests, we need to use dumpcap instead of tcpdump.

Change-Id: I36d5524b11e10ac687c65345aedc4a99e7fda8d8
2021-02-04 15:57:33 +01:00
Harald Welte 586a95b4e4 fr: Don't write TIMEROP_START to ConsoleLog
There is quite a number of them, as we start 100 UE components
plus associated structure underneath.  Let's avoid spamming the console.

Change-Id: I6621ac6094de310e974ce0438d01fca868719eb1
2021-02-04 14:58:22 +01:00
Harald Welte 7504c4dc4b fr: Randomize packet size used in TC_ul2dl_ud()
This allows us to test with a variety of packet sizes up to [close to]
the MTU of the underlying transport (configurable by modulepar)

Change-Id: I8e38ecf6b270c81bd73ee43b1fa0b259a999c14b
2021-02-04 14:58:22 +01:00
Harald Welte 27119672d2 fr: Add TC_ul2dl_ud
This test case tests NS-UL-UNITDATA transmit and expectes the exact same
LLC PDU to be sent back as NS-DL-UNITDATA.

This way we can verify that both uplink and downlink paths are working,
and that no messages are lost.  It works stable here on my laptop,
showing that if we test the TTCN3 NS + BSSGP code over a E1 line
against another instance (fr against fr-net) works reliable.

Change-Id: Ic115af02207c9b9f4c84fa75890048acb6856c79
2021-02-04 14:58:22 +01:00
Harald Welte 8525764791 fr: UE_CT: Store BVCI + CellId in each UE
Change-Id: I1a25a03e17b3d957763512dc4acda134338df3be
2021-02-04 14:58:22 +01:00
Harald Welte bfff717e1c fr/fr-net: Use four parallel FR NS-VC instead of just one
Related: OS#4974
Change-Id: I366ceea525c09236f5432ba043a757e593d4ed0e
2021-02-04 10:48:21 +01:00
Harald Welte 106ba34a26 fr: TC_bvc_bringup
Change-Id: I91d61e01158802496a1058748c51506f0472b24e
2021-02-03 19:28:05 +01:00
Harald Welte f1f23bf785 fr: Generalize and document functions
This prepares a lot of the FR_Tests functionality to be re-used in more
test cases.

Change-Id: I95b759ad85d9d1cba1533122672e7ff5628bc014
2021-02-03 19:28:05 +01:00
Harald Welte 02cdc7cf2c fr: Add component id in logs; add 15s timeout waiting for BVC-UNBLOCK
Change-Id: If62d54517ee9af828d6fa56d83073260ceced1e8
2021-02-03 19:28:05 +01:00
Harald Welte 5e78788c4e fr: Make TC_foo() actually terminate
Rather than running in an endless loop (useful for manual tets),
terminate each UE_CT after sending 50 packets.  Also adjust the ramping
and timeouts in a way that it manages to terminate ahead of the guard
timeout.

Change-Id: I7f40f5c59d399d528072986d067b5014fbd085c4
2021-02-03 19:28:05 +01:00
Harald Welte 681949b047 fr: Implement per-UE guard timeout
Change-Id: Ie52b1923ca81f7717be446891df1bfdb67ed7ed7
2021-02-03 19:28:05 +01:00
Harald Welte 056858ac62 fr: Don't wait indefinitely, but wait until all UE components terminate
Change-Id: Ifdf9c7fb625ccdb467b3b87f79431da18fea5f2e
2021-02-03 19:28:05 +01:00
Harald Welte 920c7c45ec fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around
If send() on AF_PACKET returns ENOBUFS, usleep for 2ms and re-try
until it succeeds.

Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a
Closes: OS#5343
2021-01-30 14:08:16 +00:00
Alexander Couzens c796da8711 remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct
Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4
2021-01-17 15:59:26 +00:00
Harald Welte d6de98418c FR/FRNET: Introduce simplistic simulation of UEs
Let's start a number of per-UE/TLLI component on each BVC, and generate
some uplink traffic with random-payload 512-byte LLC frames.  The
FRNET(SGSN) side simply ignores all of those by means of a
CreateCallback.

Change-Id: I1b25b4a650d831bb07e9623b76e6c3dcdd71ac88
2020-11-16 20:32:20 +01:00
Harald Welte 4d112c926c BSSGP_Emulation: Allow a "CreateCb" to handle unknown inbound TLLI
The existing BSSGP Code assumed that the TLLIs were always known "a
priori" by the test case.  With the newly-introduced create_cb,
the user can provide a function to handle any incoming messages for an
unknown TLLL.  The default handler behaves like before: fail +
terminate.

Change-Id: Ice0e145f5a6518ff79547dd851042b7965f38e00
2020-11-16 19:13:26 +00:00
Harald Welte 088df5769d FR/FRNET: Reduce console log verbosity
When doing load simulatin, the amount of console printing becomes a
serious throttle factor.  We don't need to see the decode of every
message.

Change-Id: Ic988d1e1d60c9d03d5b70e9b38f109b47569b89e
2020-11-12 20:56:50 +00:00
Harald Welte de6f3ee592 FR/FRNET: Dynamically create number of BVC at runtime
We don't want the number of NSE and the number of BVC to be a
compile-time choice, but rather something dynamic at rutime.  This
allows configuration files to define those details.

Change-Id: I55b44481b5322deaf78619c1689462d716ddfcec
2020-11-12 20:02:07 +00:00
Harald Welte 90f1974fb0 NS_Emulation: Support multiple NS-VC within one NSE (NS-VCG)
This is something we need to simulate more complex scenarios,
particularly in the context of frame relay.

Change-Id: If1220852785853f8a5d8de183d5053ddd6ccb958
2020-11-12 20:02:07 +00:00
Harald Welte 023b61b2cb FR/FRNET: add Frame Relay emulation
Add frame relay testcase for BSS and SGSN side.
The test cases require hdlc interfaces (based on
dadhi with super channels and no lmi).

Change-Id: I95d64dc26a8d2ff02d6cf2bfcd22a97e5481f957
2020-10-16 04:06:39 +02:00