Skip to content

Commit 26f614f

Browse files
committed
Record OpenSS7 interop blocker evidence
1 parent bf4cb6a commit 26f614f

4 files changed

Lines changed: 97 additions & 1 deletion

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ The first production milestone is M3UA over a transport abstraction. SCCP, TCAP,
5353
| Supply chain automation | Phase 21 foundation-ready: supply-chain automation plan, SBOM generation contract, package signing contract, signature verification contract, provenance attestation contract, artifact manifest, gate, readiness report, CI profile, and status report added; promotion still requires real signed artifacts and commercial evidence |
5454
| Release workflow orchestration | Phase 23 foundation-ready: release workflow triggers, stages, required secrets, supply-chain integration, commercial evidence verification, publish contract, concrete workflow file, YAML validation, publish guard, artifact retention, least-privilege permissions, concurrency policy, environment contract, promotion gate, readiness report, and status report added; promotion still requires real release evidence |
5555
| Package publication readiness | Phase 24 foundation-ready: release version policy, NuGet metadata contract, package output layout, dry-run publish plan, credential policy, channel policy, package integrity manifest, publication evidence manifest, publication gate, readiness status, and documentation added; real NuGet publication remains blocked until retained evidence, signing, SBOM, provenance, and live credentials are available |
56-
| Commercial release execution | Phase 25 in progress: retained execution evidence manifest and Linux SCTP smoke capture evidence added; OpenSS7/IPSS7 remains blocked on WSL2 kernel compatibility |
56+
| Commercial release execution | Phase 25 in progress: retained execution evidence manifest, Linux SCTP smoke capture evidence, and structured OpenSS7/IPSS7 blocker evidence added; OpenSS7/IPSS7 remains blocked on WSL2 kernel compatibility |
5757
| Package governance | Phase 7 policy added: current package metadata is tracked; commercial target still requires package signing and SBOM automation |
5858
| Security governance | Phase 7 security policy added with private disclosure and severity response targets |
5959
| Compatibility policy | Phase 7 policy added: net10.0 target, SemVer, pre-stable breaking-change allowance, and stable major-version rule |

docs/PHASE25_COMMERCIAL_RELEASE_EXECUTION.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,16 @@ The current capture has:
2727
- SCTP association handshake, DATA exchange, and clean shutdown.
2828

2929
This is valid Linux SCTP smoke evidence, but it is not yet full external peer interoperability evidence.
30+
31+
## Unit 3 - OpenSS7/IPSS7 Blocker Evidence
32+
33+
`SigtranOpenSs7InteropBlockerEvidence` records the retained OpenSS7/IPSS7 execution blocker as structured evidence.
34+
35+
Current blocker:
36+
37+
- Environment: WSL2 Ubuntu 24.04.
38+
- Log: `/home/ammar/sigtran-lab/artifacts/logs/openss7-configure.log`.
39+
- Failure: OpenSS7 configure rejects Linux kernel major version 6 before peer runtime can start.
40+
- Required action: retest on a compatible Linux kernel or patch the OpenSS7 kernel-version check with retained build evidence.
41+
42+
The blocker intentionally prevents interoperability promotion until a passing OpenSS7/IPSS7 run produces PCAP, peer logs, SDK traces, and comparison evidence.

src/sigtran.net.Tests/Program.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@
186186
Run("SIGTRAN package publication status summarizes readiness foundation", SigtranPackagePublicationStatusSummarizesReadinessFoundation);
187187
Run("SIGTRAN commercial release execution evidence tracks passed and blocked artifacts", SigtranCommercialReleaseExecutionEvidenceTracksPassedAndBlockedArtifacts);
188188
Run("SIGTRAN Linux SCTP evidence records passing smoke capture", SigtranLinuxSctpEvidenceRecordsPassingSmokeCapture);
189+
Run("SIGTRAN OpenSS7 interop blocker evidence records retained failure context", SigtranOpenSs7InteropBlockerEvidenceRecordsRetainedFailureContext);
189190
Run("SIGTRAN status capabilities use domain documentation labels", SigtranStatusCapabilitiesUseDomainDocumentationLabels);
190191
Run("Native SCTP platform probe reports socket creation capability", NativeSctpPlatformProbeReportsSocketCreationCapability);
191192
Run("Native SCTP socket factory creates or reports unsupported platform", NativeSctpSocketFactoryCreatesOrReportsUnsupportedPlatform);
@@ -2327,6 +2328,17 @@ static void SigtranLinuxSctpEvidenceRecordsPassingSmokeCapture()
23272328
Assert(summary.HasCleanShutdown, "Linux SCTP capture should include clean shutdown");
23282329
}
23292330

2331+
static void SigtranOpenSs7InteropBlockerEvidenceRecordsRetainedFailureContext()
2332+
{
2333+
SigtranOpenSs7InteropBlocker blocker = SigtranOpenSs7InteropBlockerEvidence.CreateCurrentBlocker();
2334+
2335+
Assert(blocker.BlocksInteropPromotion, "OpenSS7/IPSS7 blocker should prevent interop promotion");
2336+
Assert(blocker.EnvironmentName.Contains("WSL2", StringComparison.OrdinalIgnoreCase), "OpenSS7/IPSS7 blocker should record the environment");
2337+
Assert(blocker.LogPath.EndsWith("openss7-configure.log", StringComparison.Ordinal), "OpenSS7/IPSS7 blocker should retain configure log path");
2338+
Assert(blocker.ObservedFailure.Contains("kernel major version 6", StringComparison.OrdinalIgnoreCase), blocker.Describe());
2339+
Assert(blocker.RequiredAction.Contains("Retest", StringComparison.OrdinalIgnoreCase), "OpenSS7/IPSS7 blocker should describe the next action");
2340+
}
2341+
23302342
static void SigtranStatusCapabilitiesUseDomainDocumentationLabels()
23312343
{
23322344
IReadOnlyList<string>[] statusCapabilities =
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
namespace sigtran.net.Core.Utilities;
2+
3+
/// <summary>
4+
/// Describes an OpenSS7/IPSS7 interoperability execution blocker.
5+
/// </summary>
6+
public sealed class SigtranOpenSs7InteropBlocker
7+
{
8+
/// <summary>Creates an OpenSS7/IPSS7 interoperability blocker record.</summary>
9+
/// <param name="environmentName">The lab environment where the blocker was observed.</param>
10+
/// <param name="logPath">The retained log path.</param>
11+
/// <param name="observedFailure">The observed failure summary.</param>
12+
/// <param name="requiredAction">The required action before retesting.</param>
13+
public SigtranOpenSs7InteropBlocker(
14+
string environmentName,
15+
string logPath,
16+
string observedFailure,
17+
string requiredAction)
18+
{
19+
EnvironmentName = string.IsNullOrWhiteSpace(environmentName)
20+
? throw new ArgumentException("Environment name is required.", nameof(environmentName))
21+
: environmentName;
22+
LogPath = string.IsNullOrWhiteSpace(logPath)
23+
? throw new ArgumentException("OpenSS7 log path is required.", nameof(logPath))
24+
: logPath;
25+
ObservedFailure = string.IsNullOrWhiteSpace(observedFailure)
26+
? throw new ArgumentException("Observed failure is required.", nameof(observedFailure))
27+
: observedFailure;
28+
RequiredAction = string.IsNullOrWhiteSpace(requiredAction)
29+
? throw new ArgumentException("Required action is required.", nameof(requiredAction))
30+
: requiredAction;
31+
}
32+
33+
/// <summary>The lab environment where the blocker was observed.</summary>
34+
public string EnvironmentName { get; }
35+
36+
/// <summary>The retained log path.</summary>
37+
public string LogPath { get; }
38+
39+
/// <summary>The observed failure summary.</summary>
40+
public string ObservedFailure { get; }
41+
42+
/// <summary>The required action before retesting.</summary>
43+
public string RequiredAction { get; }
44+
45+
/// <summary>Whether the blocker prevents OpenSS7/IPSS7 commercial evidence promotion.</summary>
46+
public bool BlocksInteropPromotion => true;
47+
48+
/// <summary>Formats a compact blocker summary.</summary>
49+
/// <returns>The blocker summary.</returns>
50+
public string Describe()
51+
{
52+
return $"{EnvironmentName}: {ObservedFailure}; action={RequiredAction}; log={LogPath}";
53+
}
54+
}
55+
56+
/// <summary>
57+
/// Provides OpenSS7/IPSS7 interoperability blocker evidence helpers.
58+
/// </summary>
59+
public static class SigtranOpenSs7InteropBlockerEvidence
60+
{
61+
/// <summary>Creates the current retained OpenSS7/IPSS7 blocker evidence record.</summary>
62+
/// <returns>The current retained OpenSS7/IPSS7 blocker evidence record.</returns>
63+
public static SigtranOpenSs7InteropBlocker CreateCurrentBlocker()
64+
{
65+
return new(
66+
"WSL2 Ubuntu 24.04",
67+
"/home/ammar/sigtran-lab/artifacts/logs/openss7-configure.log",
68+
"OpenSS7 configure rejects Linux kernel major version 6 before peer runtime can start.",
69+
"Retest OpenSS7/IPSS7 on a compatible Linux kernel or patch the OpenSS7 kernel-version check with retained build evidence.");
70+
}
71+
}

0 commit comments

Comments
 (0)