diff options
Diffstat (limited to 'm3ua-sgp-tests.scm')
-rw-r--r-- | m3ua-sgp-tests.scm | 1251 |
1 files changed, 1251 insertions, 0 deletions
diff --git a/m3ua-sgp-tests.scm b/m3ua-sgp-tests.scm new file mode 100644 index 0000000..49c8ad0 --- /dev/null +++ b/m3ua-sgp-tests.scm @@ -0,0 +1,1251 @@ +;;; +;;; Copyright (C) 2004, 2005, 2006 M. Tuexen tuexen@fh-muenster.de +;;; +;;; All rights reserved. +;;; +;;; Redistribution and use in source and binary forms, with or +;;; without modification, are permitted provided that the +;;; following conditions are met: +;;; 1. Redistributions of source code must retain the above +;;; copyright notice, this list of conditions and the +;;; following disclaimer. +;;; 2. Redistributions in binary form must reproduce the +;;; above copyright notice, this list of conditions and +;;; the following disclaimer in the documentation and/or +;;; other materials provided with the distribution. +;;; 3. Neither the name of the project nor the names of +;;; its contributors may be used to endorse or promote +;;; products derived from this software without specific +;;; prior written permission. +;;; +;;; THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS +;;; ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +;;; BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +;;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +;;; DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS +;;; BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +;;; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +;;; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +;;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +;;; IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +;;; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +;;; OF SUCH DAMAGE. + +;;; $Id: m3ua-sgp-tests.scm,v 1.9 2012/08/28 19:56:13 tuexen Exp $ + +;;; Version 1.3.0 +;;; +;;; History +;;; 04.12.2004: Fix name test-addr- -> tester-addr in almost all testcases +;;; 04.12.2004: Fix name of m3ua-sgp-mtr-v-001 to m3ua-sgp-mtr-v-002. +;;; 06.12.2004: Move SUT parameter to external file. +;;; 06.12.2004: Use asp-up-message-parameters as default last arg of m3ua-make-asp-up-message. +;;; 06.12.2004: Use asp-active-message-parameters as default last arg of m3ua-make-asp-active-message. +;;; 06.12.2004: Use asp-active-ack-message-parameters as default last arg of m3ua-make-asp-active-ack-message. +;;; 06.12.2004: Use asp-inactive-message-parameters as default last arg of m3ua-make-asp-inactxive-message. +;;; 06.12.2004: Use asp-inactive-ack-message-parameters as default last arg of m3ua-make-asp-inactive-ack-message. +;;; 06.12.2004: Use data-message-parameters as default last arg of m3ua-make-data-message. +;;; 09.12.2004: m3ua-sgp-mtr-v-00[23] implemented according to change request. +;;; 14.12.2004: m3ua-sgp-aspsm-v-009 added. +;;; 14.12.2004: m3ua-sgp-asptm-i-003 added. +;;; 18.12.2004: Use iut-ni iut-mp and iut-sls in m3ua-make-data-message. +;;; 19.12.2004: m3ua-sgp-asptm-v-014 added. +;;; 19.12.2004: m3ua-sgp-asptm-v-015 added. +;;; 19.12.2004: m3ua-sgp-asptm-i-009 added. +;;; 19.12.2004: m3ua-sgp-mtr-v-001 added. +;;; 19.12.2004: m3ua-sgp-mtr-v-002 additional variant added. +;;; 19.12.2004: m3ua-sgp-mtr-v-003 additional variant added. +;;; 13.09.2005: Implement ASP tests. +;;; 18.02.2006: Implement m3ua-sgp-rkm* +;;; 12.03.2006: Fix name of m3ua-sgp-rkm-v-02[123] to m3ua-sgp-rkm-i-02[123] +;;; 27.08.2006: m3ua-sgp-mtr-v-00[12]: do not send data before reception of DAVA. Should I send DAUD? + + +;;; +;;; Definition of the tests for the SGP +;;; + +(define (m3ua-sgp-aspsm-v-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-aspsm-v-001 tester-addr tester-port sut-addr sut-port) +;;; The test is passed if an ASPUP-ACK is returned + + + +(define (m3ua-sgp-aspsm-v-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (let ((msg (m3ua-wait-for-message fd m3ua-notify-message?))) + (close fd) + (if (and (= (m3ua-get-status-type-from-message msg) m3ua-as-state-change-status-type) + (= (m3ua-get-status-info-from-message msg) m3ua-as-inactive)) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-aspsm-v-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is a ASPUP-ACK and a NOTIFY(AS_INACTIVE) + + + +(define (m3ua-sgp-aspsm-v-005 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-down-message)) + (m3ua-wait-for-message fd m3ua-asp-down-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-aspsm-v-005 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is a ASPDN-ACK + + + +(define (m3ua-sgp-aspsm-v-009 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-refused-management-blocking-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-aspsm-v-009 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(Refused - Management Blocking) +;;; is returned. Of course, the ASP has to be configured appropiately at the SUT. + + + +(define (m3ua-sgp-aspsm-i-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-common-header (+ m3ua-version 1) + m3ua-reserved + m3ua-aspsm-message-class + m3ua-aspup-message-type + m3ua-common-header-length)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-invalid-version-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-aspsm-i-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is a ERROR(invalid version) + + + +(define (m3ua-sgp-aspsm-i-002 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-common-header m3ua-version + m3ua-reserved + m3ua-aspsm-message-class + m3ua-reserved-aspsm-message-type + m3ua-common-header-length)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-message-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-aspsm-i-002 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is a ERROR(unsupported message type) + + + +(define (m3ua-sgp-aspsm-i-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unexpected-message-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-aspsm-i-003 tester-addr tester-port sut-addr sut-port) +;;; This test needs clarification. FIXME. + + + +(define (m3ua-sgp-aspsm-i-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-common-header m3ua-version + m3ua-reserved + m3ua-aspsm-message-class + m3ua-reserved-aspsm-message-type + m3ua-common-header-length)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-message-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-aspsm-i-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported message type) + + + +(define (m3ua-sgp-aspsm-o-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-aspsm-o-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPUP-ACK. + + + +(define (m3ua-sgp-aspsm-o-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unexpected-message-error-code) + (begin + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (let ((msg (m3ua-wait-for-message fd m3ua-notify-message?))) + (close fd) + (if (and (= (m3ua-get-status-type-from-message msg) m3ua-as-state-change-status-type) + (= (m3ua-get-status-info-from-message msg) m3ua-as-inactive)) + m3ua-test-result-passed + m3ua-test-result-failed))) + (begin + (close fd) + m3ua-test-result-failed))))) +;;; (m3ua-sgp-aspsm-o-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unexpected message), +;;; an ASPUP-ACK and a NOTIFY(AS_INACTIVE). + + + +(define (m3ua-sgp-aspsm-o-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-down-message)) + (m3ua-wait-for-message fd m3ua-asp-down-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-aspsm-o-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPDN-ACK, + + + +(define (m3ua-sgp-asptm-v-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-v-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPAC-ACK. + + + +(define (m3ua-sgp-asptm-v-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (let ((msg (m3ua-wait-for-message fd m3ua-notify-message?))) + (close fd) + (if (and (= (m3ua-get-status-type-from-message msg) m3ua-as-state-change-status-type) + (= (m3ua-get-status-info-from-message msg) m3ua-as-active)) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-v-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPAC-ACK and NOTIFY(AS-ACTIVE). + + + +(define (m3ua-sgp-asptm-v-005 tester-addr tester-port sut-addr sut-port rc) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message (list (m3ua-make-routing-context-parameter (list rc))))) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (close fd) + m3ua-test-result-unknown)) +;;; (m3ua-sgp-asptm-v-005 tester-addr tester-port sut-addr sut-port tester-rc-valid) +;;; This test is passed if there is an ASPAC-ACK contains the RC. +;;; NOTE: This test does not use the asp-active-message-parameters variable. + + +(define (m3ua-sgp-asptm-v-006 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-inactive-message asp-inactive-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-inactive-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-v-006 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPIA-ACK. + + + +(define (m3ua-sgp-asptm-v-008 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-inactive-message asp-inactive-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-inactive-ack-message?) + (let ((msg (m3ua-wait-for-message fd m3ua-notify-message?))) + (close fd) + (if (and (= (m3ua-get-status-type-from-message msg) m3ua-as-state-change-status-type) + (= (m3ua-get-status-info-from-message msg) m3ua-as-pending)) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-v-008 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPIA-ACK and NOTIFY(AS-PENDING). + + + +(define (m3ua-sgp-asptm-v-010 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-beat-message (string->bytes "M3UA rocks"))) + (m3ua-wait-for-message fd m3ua-beat-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-v-010 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is a BEAT-ACK. + + + +(define (m3ua-sgp-asptm-v-011 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (let ((value (random-bytes 13))) + (m3ua-send-message fd 0 (m3ua-make-beat-message value)) + (let ((msg (m3ua-wait-for-message fd m3ua-beat-ack-message?))) + (close fd) + (if (equal? msg (m3ua-make-beat-ack-message value)) + m3ua-test-result-passed + m3ua-test-result-failed))))) +;;; (m3ua-sgp-asptm-v-011 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is a BEAT-ACK with unchanged data. + + + +(define (m3ua-sgp-asptm-v-013 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) + (let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1)) + (fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2))) + ;;; Move ASP1 to ASP-ACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-up-message (list (m3ua-make-asp-id-parameter asp-id-1)))) + (m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?) + (m3ua-send-message fd1 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-broadcast)))) + (m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?) + ;;; Move ASP2 to ASP-ACTIVE + (m3ua-send-message fd2 0 (m3ua-make-asp-up-message (list (m3ua-make-asp-id-parameter asp-id-2)))) + (m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?) + (m3ua-send-message fd2 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-broadcast)))) + (m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?) + ;;; Now move ASP1 to ASP-INACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-inactive-message (list))) + (m3ua-wait-for-message fd1 m3ua-asp-inactive-ack-message?) + (let ((msg (m3ua-wait-for-message fd1 m3ua-notify-message?))) + (close fd1) + (close fd2) + (if (and (= (m3ua-get-status-type-from-message msg) m3ua-other-status-type) + (= (m3ua-get-status-info-from-message msg) m3ua-insufficient-resources)) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-v-013 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) +;;; This test is passed if the SUT sends a NOTIFY. + + + +(define (m3ua-sgp-asptm-v-014 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) + (let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1)) + (fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2))) + ;;; Move ASP1 to ASP-INACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-up-message (list (m3ua-make-asp-id-parameter asp-id-1)))) + (m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?) + ;;; Move ASP2 to ASP-ACTIVE + (m3ua-send-message fd2 0 (m3ua-make-asp-up-message (list (m3ua-make-asp-id-parameter asp-id-2)))) + (m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?) + (m3ua-send-message fd2 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-override)))) + (m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?) + ;;; Now move ASP1 to ASP-ACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-override)))) + (m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?) + (m3ua-wait-for-message fd2 m3ua-notify-message?) + (close fd1) + (close fd2) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-v-014 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) +;;; This test is passed if the SUT sends an ASPAC-ACK and a NOTIFY. + + + +(define m3ua-sgp-asptm-v-015 m3ua-sgp-asptm-v-014) +;;; (m3ua-sgp-asptm-v-014 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) +;;; This test is passed if the SUT sends an ASPAC-ACK and a NOTIFY including the ASP-ID. + + + +(define (m3ua-sgp-asptm-i-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-common-header (+ m3ua-version 1) + m3ua-reserved + m3ua-asptm-message-class + m3ua-aspac-message-type + m3ua-common-header-length)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-invalid-version-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-i-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(invalid version). + + + +(define (m3ua-sgp-asptm-i-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-broadcast)))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-traffic-mode-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-i-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported traffic mode type). +;;; NOTE: This test does not used the asp-active-message-parameters variable. + + + +(define (m3ua-sgp-asptm-i-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter 4)))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-traffic-mode-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-i-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported traffic mode type). +;;; NOTE: This test does not used the asp-active-message-parameters variable. + + + +(define (m3ua-sgp-asptm-i-005-help tester-addr tester-port sut-addr sut-port rc) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message (list (m3ua-make-routing-context-parameter (list rc))))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-invalid-routing-context-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +(define (m3ua-sgp-asptm-i-005 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-asptm-i-005-help tester-addr tester-port sut-addr sut-port tester-rc-invalid)) +;;; (m3ua-sgp-asptm-i-005 tester-addr tester-port sut-addr sut-port tester-rc-invalid) +;;; This test is passed if there is an ERROR(invalid routing context).. +;;; NOTE: This test does not use the asp-active-message-parameters variabel. + + + +(define (m3ua-sgp-asptm-i-006 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-common-header m3ua-version + m3ua-reserved + m3ua-asptm-message-class + 5 + m3ua-common-header-length)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-message-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-i-006 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported message type). + + + +(define (m3ua-sgp-asptm-i-008 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-common-header m3ua-version + m3ua-reserved + m3ua-asptm-message-class + 5 + m3ua-common-header-length)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-message-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-i-008 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported message type). + + + +(define (m3ua-sgp-asptm-i-009 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) + (let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1)) + (fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2))) + ;;; Move ASP1 to ASP-ACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-up-message (list (m3ua-make-asp-id-parameter asp-id-1)))) + (m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?) + (m3ua-send-message fd1 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-override)))) + (m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?) + ;;; Move ASP2 to ASP-ACTIVE + (m3ua-send-message fd2 0 (m3ua-make-asp-up-message (list (m3ua-make-asp-id-parameter asp-id-2)))) + (m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?) + (m3ua-send-message fd2 0 (m3ua-make-asp-active-message (list (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-override)))) + (m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?) + ;;; Now fail communication to ASP1 via SHUTDOWN procedure. + (close fd1) + (let ((msg (m3ua-wait-for-message fd2 m3ua-notify-message?))) + (close fd2) + (if (and (= (m3ua-get-status-type-from-message msg) m3ua-other-status-type) + (= (m3ua-get-status-info-from-message msg) m3ua-asp-failure)) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-asptm-i-009 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2) +;;; This test is passed if the SUT sends a NOTIFY(ASP-FAILURE). + + + +(define (m3ua-sgp-asptm-i-010 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-inactive-message asp-inactive-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-inactive-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-i-010 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPIA-ACK. + + + +(define (m3ua-sgp-asptm-o-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-o-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPAC-ACK. + + + +(define (m3ua-sgp-asptm-o-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-inactive-message asp-inactive-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-inactive-ack-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-asptm-o-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ASPIA-ACK. + + + +(define (m3ua-sgp-mtr-v-001 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 rc-1 rc-2 tester-pc-1 tester-pc-2) + (let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1)) + (fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2))) + ;;; Move ASP1 to ASP-ACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?) + (m3ua-send-message fd1 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?) + ;;; Move ASP2 to ASP-ACTIVE + (m3ua-send-message fd2 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?) + (m3ua-send-message fd2 0 (m3ua-make-asp-active-message (list (m3ua-make-routing-context-parameter (list rc-1 rc-2))))) + (m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?) + (sleep 10) ;;; wait for DAVA + (do ((sls 0 (+ sls 1))) + ((= sls 16)) + (m3ua-send-message fd1 1 (m3ua-make-data-message tester-pc-1 tester-pc-2 ss7-si iut-ni iut-mp sls ss7-message data-message-parameters)) + (m3ua-wait-for-message fd2 m3ua-data-message?) + (sleep 1)) + (close fd1) + (close fd2) + m3ua-test-result-unknown)) +;;; (m3ua-sgp-mtr-v-001 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-rc-valid-1 tester-rc-valid-2 tester-pc-1 tester-pc-2) +;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1 +;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2 +;;; See ETSI document. + + + +(define (m3ua-sgp-mtr-v-002 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2) + (let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1)) + (fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2))) + ;;; Move ASP1 to ASP-ACTIVE + (m3ua-send-message fd1 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?) + (m3ua-send-message fd1 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?) + ;;; Move ASP2 to ASP-ACTIVE + (m3ua-send-message fd2 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?) + (m3ua-send-message fd2 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?) + (sleep 10) ;;; wait for DAVA + (do ((sls 0 (+ sls 1))) + ((= sls 16)) + (m3ua-send-message fd1 1 (m3ua-make-data-message tester-pc-1 tester-pc-2 ss7-si iut-ni iut-mp sls ss7-message data-message-parameters)) + (m3ua-wait-for-message fd2 m3ua-data-message?) + (sleep 1)) + (close fd1) + (close fd2) + m3ua-test-result-unknown)) +;;; (m3ua-sgp-asptm-v-002 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2) +;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1 +;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2 +;;; See ETSI document. + + + +(define (m3ua-sgp-mtr-v-002-alternate tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 1 (m3ua-make-data-message tester-pc tester-pc ss7-si iut-ni iut-mp iut-sls ss7-message data-message-parameters)) + (m3ua-send-message fd 1 (apply append (cons (m3ua-make-common-header m3ua-version + m3ua-reserved + m3ua-tfer-message-class + m3ua-data-message-type + m3ua-common-header-length) + data-message-parameters))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-missing-parameter-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-mtr-v-002-alternate tester-addr tester-port sut-addr sut-port) +;;; This test is passed if the SUT responds with an ERROR message to the second DATA message. +;;; FIXME: This does NOT match the current ETSI test but a change request. + + + +(define m3ua-sgp-mtr-v-003 m3ua-sgp-mtr-v-002) +;;; (m3ua-sgp-asptm-v-003 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2) +;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1 +;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2 +;;; See ETSI document. + + + +(define (m3ua-sgp-mtr-v-003-alternate tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 1 (m3ua-make-data-message tester-pc tester-pc ss7-si iut-ni iut-mp iut-sls ss7-message data-message-parameters)) + (m3ua-send-message fd 0 (m3ua-make-data-message tester-pc tester-pc ss7-si iut-ni iut-mp iut-sls ss7-message data-message-parameters)) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-invalid-stream-identifier-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-mtr-v-003-alternate tester-addr tester-port sut-addr sut-port) +;;; This test is passed if the SUT sends an ERROR message for the second DATA message. +;;; FIXME: This does NOT match the current ETSI test but a change request. + + + +(define m3ua-sgp-mtr-v-004 m3ua-sgp-mtr-v-002) +;;; (m3ua-sgp-asptm-v-004 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2) +;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1 +;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2 +;;; See ETSI document. + + + +(define (m3ua-sgp-mtr-i-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 1 (append (m3ua-make-common-header (+ 1 m3ua-version) + m3ua-reserved + m3ua-tfer-message-class + m3ua-data-message-type + (+ m3ua-common-header-length + m3ua-data-parameter-header-length + (length ss7-message))) + (m3ua-make-data-parameter tester-pc + tester-pc + ss7-si + 0 + 0 + 4 + ss7-message))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-invalid-version-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-mtr-i-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(invalid version). + + + +(define (m3ua-sgp-mtr-i-002 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (append (m3ua-make-common-header m3ua-version + m3ua-reserved + 10 + m3ua-data-message-type + (+ m3ua-common-header-length + m3ua-data-parameter-header-length + (length ss7-message))) + (m3ua-make-data-parameter tester-pc + tester-pc + ss7-si + 0 + 0 + 4 + ss7-message))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-message-class-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-mtr-i-002 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported message class). + + + +(define (m3ua-sgp-mtr-i-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 1 (append (m3ua-make-common-header m3ua-version + m3ua-reserved + m3ua-tfer-message-class + 2 + (+ m3ua-common-header-length + m3ua-data-parameter-header-length + (length ss7-message))) + (m3ua-make-data-parameter tester-pc + tester-pc + ss7-si + 0 + 0 + 4 + ss7-message))) + (let ((msg (m3ua-wait-for-message fd m3ua-error-message?))) + (close fd) + (if (= (m3ua-get-error-code-from-message msg) + m3ua-unsupported-message-type-error-code) + m3ua-test-result-passed + m3ua-test-result-failed)))) +;;; (m3ua-sgp-mtr-i-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an ERROR(unsupported message type). + + + +(define (m3ua-sgp-rkm-v-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-v-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if a REG_RSP with result sucessfully registered is returned. + + + +(define m3ua-sgp-rkm-v-002 m3ua-sgp-rkm-v-001) +;;; (m3ua-sgp-rkm-v-002 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if a REG_RSP with result sucessfully registered is returned. + + + +(define (m3ua-sgp-rkm-v-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (let ((rc (m3ua-get-routing-context-from-reg-rsp (m3ua-wait-for-message fd m3ua-reg-rsp-message?)))) + (m3ua-send-message fd 0 (m3ua-make-dereg-req-message + (list (m3ua-make-routing-context-parameter (list rc)))))) + (m3ua-wait-for-message fd m3ua-dereg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-v-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if a DEREG_RSP with result sucessfully deregistered is returned. + + + +(define (m3ua-sgp-rkm-v-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-error-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-v-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an ERROR(Unsupported Message Class) is returned. +;;; FIXME: Other error codes should be also OK. + + +(define (m3ua-sgp-rkm-i-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Invalid routing key is returned. +;;; FIXME: Is this really an invalid RC? At least it does not make sense... + + + +(define (m3ua-sgp-rkm-i-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-invalid-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Invalid DPC is returned. + + + +(define (m3ua-sgp-rkm-i-005 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc) + (m3ua-make-network-appearance-parameter invalid-network-appearance)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-005 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Invalid Network Appearance is returned. + + + +(define (m3ua-sgp-rkm-i-006 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 2) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-006 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Can not support unique routing key is returned. + + + +(define (m3ua-sgp-rkm-i-007 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-unauthorized-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-007 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Permission Denied is returned. + + + +(define (m3ua-sgp-rkm-i-008 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-unprovisioned-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-008 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Routing key not currently provsioned is returned. + + + +(define (m3ua-sgp-rkm-i-009 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-009 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Insufficient Resources is returned. +;;; FIXME: How to arrange that the SUT is out of resources + + + +(define (m3ua-sgp-rkm-i-010 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc) + (m3ua-make-circuit-range-parameter (list (list tester-pc 0 0)))))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-010 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported RK Parameter Field is returned. +;;; It is assumed that the SUT does not support the circuit range parameter... + + + +(define (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port traffic-mode-type-1 traffic-mode-type-2) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-traffic-mode-type-parameter traffic-mode-type-1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 2) + (m3ua-make-traffic-mode-type-parameter traffic-mode-type-2) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) + + + +(define (m3ua-sgp-rkm-i-011 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port m3ua-traffic-mode-type-override m3ua-traffic-mode-type-loadshare)) +;;; (m3ua-sgp-rkm-i-011 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-012 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port m3ua-traffic-mode-type-override m3ua-traffic-mode-type-broadcast)) +;;; (m3ua-sgp-rkm-i-012 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-013 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-traffic-mode-type-parameter m3ua-traffic-mode-type-invalid) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-wait-for-message fd m3ua-reg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-013 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-014 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port m3ua-traffic-mode-type-loadshare m3ua-traffic-mode-type-override)) +;;; (m3ua-sgp-rkm-i-014 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-015 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port m3ua-traffic-mode-type-loadshare m3ua-traffic-mode-type-broadcast)) +;;; (m3ua-sgp-rkm-i-015 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-017 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port m3ua-traffic-mode-type-broadcast m3ua-traffic-mode-type-override)) +;;; (m3ua-sgp-rkm-i-017 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-018 tester-addr tester-port sut-addr sut-port) + (m3ua-sgp-rkm-i-traffic-mode-test tester-addr tester-port sut-addr sut-port m3ua-traffic-mode-type-broadcast m3ua-traffic-mode-type-loadshare)) +;;; (m3ua-sgp-rkm-i-018 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Unsupported/Invalid Traffic Handling Mode is returned. + + + +(define (m3ua-sgp-rkm-i-020 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (m3ua-send-message fd 0 (m3ua-make-dereg-req-message + (list (m3ua-make-routing-context-parameter (list tester-rc-invalid))))) + (m3ua-wait-for-message fd m3ua-dereg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-020 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an REG_RSP with result ERROR - Error Not Registered is returned. + + + +(define (m3ua-sgp-rkm-i-021 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (let ((rc (m3ua-get-routing-context-from-reg-rsp (m3ua-wait-for-message fd m3ua-reg-rsp-message?)))) + (m3ua-send-message fd 0 (m3ua-make-dereg-req-message + (list (m3ua-make-routing-context-parameter (list rc)))))) + (m3ua-wait-for-message fd m3ua-dereg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-021 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if a DEREG_RSP with result Error - Permission Denied is returned. +;;; FIXME: Please make sure that the registered routing key is not authorized for dereg. + + + +(define (m3ua-sgp-rkm-i-022 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-reg-req-message + (list + (m3ua-make-routing-key-parameter + (list (m3ua-make-local-routing-key-identifier-parameter 1) + (m3ua-make-destination-point-code-parameter tester-pc)))))) + (let ((rc (m3ua-get-routing-context-from-reg-rsp (m3ua-wait-for-message fd m3ua-reg-rsp-message?)))) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message (list (m3ua-make-routing-context-parameter (list rc))))) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-dereg-req-message + (list (m3ua-make-routing-context-parameter (list rc)))))) + (m3ua-wait-for-message fd m3ua-dereg-rsp-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-022 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if a DEREG_RSP with result Error - ASP Currently Active For Routing Context is returned. + + + +(define (m3ua-sgp-rkm-i-023 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-wait-for-message fd m3ua-notify-message?) + (m3ua-send-message fd 0 (m3ua-make-message m3ua-rkm-message-class m3ua-reserved-rkm-message-type (list))) + (m3ua-wait-for-message fd m3ua-error-message?) + (sleep 1) + (close fd))) +;;; (m3ua-sgp-rkm-i-023 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if an ERROR (Unsuported Message Type) is returned. + +(define (m3ua-sgp-ssnm-001 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-daud-message (list (m3ua-make-affected-point-code-parameter (list (list 0 tester-congested-pc)))))) + (m3ua-wait-for-message fd m3ua-scon-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-ssnm-001 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an SCON. + +(define (m3ua-sgp-ssnm-002 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-daud-message (list (m3ua-make-affected-point-code-parameter (list (list 0 tester-restricted-pc)))))) + (m3ua-wait-for-message fd m3ua-drst-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-ssnm-002 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an DRST. + +(define (m3ua-sgp-ssnm-003 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-daud-message (list (m3ua-make-affected-point-code-parameter (list (list 0 tester-unavailable-pc)))))) + (m3ua-wait-for-message fd m3ua-duna-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-ssnm-003 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an DUNA. + +(define (m3ua-sgp-ssnm-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-daud-message (list (m3ua-make-affected-point-code-parameter (list (list 0 tester-available-pc)))))) + (m3ua-wait-for-message fd m3ua-dava-message?) + (close fd) + m3ua-test-result-passed)) +;;; (m3ua-sgp-ssnm-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an DAVA. + +(define (m3ua-sgp-ssnm-004 tester-addr tester-port sut-addr sut-port) + (let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port))) + (m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-up-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters)) + (m3ua-wait-for-message fd m3ua-asp-active-ack-message?) + (m3ua-send-message fd 0 (m3ua-make-daud-message (list (m3ua-make-affected-point-code-parameter (list (list 255 tester-available-pc)))))) + (sleep 1) + (close fd) + m3ua-test-result-unknown)) +;;; (m3ua-sgp-ssnm-004 tester-addr tester-port sut-addr sut-port) +;;; This test is passed if there is an DAVA. |