IEC 61851-1, DIN 70121 and ISO 15118 (SLAC & V2G message) test cases — SECC under test (VTB)
Report generated: 2026-10-10 07:55:59
| Manufacturer | - |
|---|---|
| Model / type | - |
| Software / firmware | EVerest testing/main @ 2e710bc8191bd5a29c16a4d0815c6bcd9318c51d |
| Serial / identification | - |
| Notes | Nightly CI, all SECC stacks Evse15118D20. SUT config: config-test-conformance-ac-dc100.yaml (one of the nightly's rig cycles, each with its own report) |
| Transfer mode | AC |
Black-box DUT: the internal software stack is not observable by the test system; the identification above was entered by the test operator.
| Capability | PICS/PIXIT | Declared |
|---|---|---|
| Energy transfer mode | PICS_CMN_CMN_ChargingMode | ac |
| Payment options offered | PIXIT_SECC_CMN_PaymentOption / PICS_CMN_CMN_IdentificationMode | ExternalPayment |
| Certificate services offered | PIXIT_SECC_CMN_CertificateHandling | none |
| Certificate validity checked against current time | PICS_SECC_CertificateValidationCheck | yes |
| Tester CSMS is the DUT's OCPP backend | PIXIT_SECC_TesterCSMS | yes |
| Transport security accepted | PIXIT_SECC_CMN_TLS | tcp |
| Value-added service list (VAS) | PIXIT_SECC_CMN_VAS == serviceDetail / PICS_SECC_VAS | no |
| Internet access service | PIXIT_SECC_CMN_InternetAccess == internetAccess | no |
| Metering receipts requested | PIXIT_SECC_CMN_ReceiptRequired | yes |
| MeterInfo in charge-loop responses | PIXIT_SECC_CMN_MeterInfo == meterInfo | yes |
| MeteringConfirmation requested (ISO 15118-20) | PICS_CMN_MeteringConfirmationRequested | no |
| SalesTariff in schedules | PIXIT_SECC_CMN_SalesTariff == salesTariff | no |
| Control modes offered (ISO 15118-20) | PICS_CMN_ControlMode | Dynamic |
| Schedule initially unavailable (ISO 15118-20) | PIXIT_SECC_ScheduleRetrievalSuspended | no |
| DepartureTime considered | PICS_SECC_CMN_DepartureTime | yes |
| MaxEntriesSAScheduleTuple considered | PICS_SECC_CMN_MaxEntriesSAScheduleTuple | yes |
| Renegotiation supported | PICS_CMN_CMN_Renegotiation | no |
| CP State D (ventilation) during charging | PICS_SECC_CMN_EvStateInChargeProgress == D | no |
| Pause / resume supported | PICS_SECC_CMN_Pause | no |
| Welding detection supported | PICS_SECC_DC_WeldingDetection | n/a (DC-only) |
| ISO 15118-2 supported | PICS_SECC_CMN_ISO15118_2 | yes |
| ISO 15118-20 supported | PICS_SECC_CMN_ISO15118_20 | no |
| DIN SPEC 70121 supported (DC) | PICS_SECC_DC_DIN70121 | n/a (DC-only) |
| DC energy transfer mode(s) advertised | PIXIT_SECC_DC_SupportedEnergyTransferMode | n/a (DC-only) |
| CableCheck answers Ongoing | PIXIT_SECC_DC_CableCheckOngoing == ongoing | n/a (DC-only) |
| Authorization answers Ongoing | PIXIT_SECC_CMN_AuthorizationOngoing == ongoing | no |
| ChargeParameterDiscovery answers Ongoing | PIXIT_SECC_CMN_ChargeParameterDiscoveryOngoing == ongoing | no |
| CM_VALIDATE (BCB-toggle validation) | PIXIT_SECC_CMN_CmValidate == cmValidate | no |
| Architecture makes validation unnecessary | PIXIT_SECC_CMN_ArchitectureValidationNotRequired | no |
| CM_AMP_MAP supported | PIXIT_CMN_CMN_CmAmpMap | no |
| SECC initiates CM_AMP_MAP | PICS_CMN_CMN_InitiateCmAmpMap | no |
| Self-initiated wake-up from pause | PIXIT_CMN_CMN_WakeUp < PICS_CMN_CMN_WakeUp | no |
| AC connection-loss handling | PIXIT_SECC_AC_ConnectionLossHandling | optionA |
| AC CP duty cycle after plug-in | PIXIT_SECC_AC_InitialDutyCyle | dc100 |
| IEC 61851-1 basic charging (AC) | PIXIT_SECC_IEC61851_1_BasicCharging | yes |
| Identification modes supported | PICS_CMN_CMN_IdentificationMode | ExternalPayment |
| Certificate services used | PIXIT_EVCC_CMN_CertificateHandling | none |
| Renegotiation supported | PICS_CMN_CMN_Renegotiation | no |
| Pause / resume (sleep mode) supported | PIXIT_EVCC_CMN_Pause | no |
| Optimises the charging profile against sales tariffs | PIXIT_EVCC_CMN_ChargingProfileOptimization | unknown |
| States MaxNumberOfPhasesInUse (AC) | PIXIT_EVCC_AC_MaxNumberOfPhasesInUse | no |
| Queries value-added services (ServiceDetail) | PIXIT_EVCC_CMN_VAS | no |
| Transport security requested | PIXIT_EVCC_CMN_TLS | none_ |
| Welding detection performed (DC) | PIXIT_EVCC_DC_WeldingDetection | weldingDetection |
| Reaction to a Pmax=0 W schedule | PICS_EVCC_CMN_PmaxSchedulewithZeroPow | noSleep |
| SLAC validation (CM_VALIDATE / BCB toggle) | PIXIT_EVCC_CMN_CmValidate | unknown |
| AC connection-loss handling | PIXIT_EVCC_AC_ConnectionLossHandling | optionA |
| CM_AMP_MAP supported | PIXIT_CMN_CMN_CmAmpMap | no |
| EV initiates CM_AMP_MAP | PICS_CMN_CMN_InitiateCmAmpMap | no |
Declared by the test operator (profile v1); the test-case selection of this run was derived from this declaration, mirroring the ISO 15118-4 ATS control part ([V2G4-018]/[V2G4-019]). Test cases the declaration marks not applicable were deselected by default; any that were explicitly force-run are annotated “declared N/A (operator force-run)” at their result.
| ISO 15118-3 SLAC (-5) | DUT (dut) |
|---|---|
| ISO 15118-2 message layer (-4) | DUT (dut) |
| Test suite version | - |
|---|---|
| Test suite git SHA | - |
| Test suite branch | - |
| Mode | HW (CHARGEBRIDGE, BLACK-BOX DUT) |
| Host | CI runner |
| Kernel | 6.8.0-86-generic |
| PLC taps (EVSE / EV) | - / cb_plc_ev |
| MQTT broker | /tmp/everest-conformance-mqtt.sock:1883 |
| EVerest prefix | - |
| Pause between TCs | 3 s |
| EV BSP module id | ev_bsp |
Verdict semantics: expected failures (author-flagged known deviations / non-deterministic cases) are reported as FAIL EXPECTED — genuine reds that are not hidden and must be explicitly accepted by the operator. A FAIL (or FAIL EXPECTED) accepted by the operator is reported as ACCEPTED FAIL with the mandatory justification and does not count against the overall verdict. Overall verdict is PASS only if no test case FAILs (or is left FAIL EXPECTED without acceptance) on any variant.
| Test case | Justification |
|---|---|
| TC_SECC_AC_VTB_CmSlacParm_003 | Operator-accepted deviation from ISO 15118-3 [V2G3-M06-08]: after a positive EIM the dc100 SUT goes from X1 straight to nominal PWM without the E/F step for T_step_EF. Kept on purpose for compatibility with EVs without HLC that follow plain IEC 61851-1 charging and are confused by the extra E/F step. |
| Test case | DUT (dut) | |
|---|---|---|
| Verdict | Duration | |
| CmSlacParm | ||
| TC_SECC_AC_VTB_CmSlacParm_003 | ACCEPTED FAIL operator-accepted deviation | 17.19 s |
| PLCLinkStatus | ||
| TC_SECC_AC_VTB_PLCLinkStatus_009 | PASS | 4.29 s |
| TC_SECC_AC_VTB_PLCLinkStatus_011 | PASS | 8.69 s |
| Test case | DUT (dut) | |
|---|---|---|
| Verdict | Duration | |
| PaymentServiceSelection | ||
| TC_SECC_CMN_VTB_PaymentServiceSelection_009 | PASS | 6.06 s |
| SDP | ||
| TC_SECC_CMN_VTB_SDP_007 | PASS | 5.60 s |
TC_SECC_AC_VTB_CmSlacParm_003.
Test objective: Test System executes GoodCase procedure, indicates the initial CP State B waits for 100 % duty cycle and executes successful EIM process. Test System then checks that a nominal duty cycle can be detected after SUT changes CP State to E or F for T_step_EF. Furthermore a successful SLAC matching process shall be performed afterwards.
TimeoutError: CP E/F (duty 0) step not observed before the window closed (last duty=26.666667938232422)
| Measurement | Measured | Target / range | Result |
|---|---|---|---|
| initial CP duty cycle (dc100) | 100.0 % | 100 ± 1.5 % | ✓ |
E TimeoutError: CP E/F (duty 0) step not observed before the window closed (last duty=26.666667938232422)
TC_SECC_AC_VTB_PLCLinkStatus_009.
Test objective: Test System executes GoodCase procedure, initiates an EIM authorization during the SLAC process, indicates the key at the local PLC node and then checks that the data link connection is established within 'TT_match_join'. Test System then checks if the SUT has changed from 100 % initial duty cycle to a nominal duty cycle during the matching process by detecting X1(100 %) to X2(nominal) transition after successful EIM process during the matching process.
| Conformance check | Observed | Result |
|---|---|---|
| nominal duty applied within par_SECC_change_to_Nominal (3.0s) of the EIM | nominal duty 0.309s after EIM | ✓ |
| X2(nominal) duty period observed | ✓ | |
| X1(100%) period observed before the nominal duty | ✓ | |
| no 5% HLC duty period precedes the nominal duty (dc100 X1->X2(nominal) transition) | ✓ | |
| CP duty valid throughout the dc100 X1->X2(nominal) transition chain | all samples within range | ✓ |
| Measurement | Measured | Target / range | Result |
|---|---|---|---|
| initial CP duty cycle (dc100) | 100.0 % | 100 ± 1.5 % | ✓ |
| CM_SLAC_PARM.CNF response time | 0.7 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_ATTEN_CHAR.IND after sounding | 409.9 ms | ≤ 1200 ms (TT_EV_atten_results) | ✓ |
| CM_SLAC_MATCH.CNF response time | 0.6 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_SET_KEY.CNF response time | 0.2 ms | - | info |
| nominal duty after EIM (par_SECC_change_to_Nominal) | 0.309 s | ≤ 3.0 s | ✓ |
| nominal CP duty cycle after EIM (dc100 duringSlac) | 26.7 % | [10.0, 96.0] % | ✓ |
TC_SECC_AC_VTB_PLCLinkStatus_011.
Test objective: Test System executes GoodCase procedure (100 % duty cycle), indicates the key at the local PLC node and then checks that the data link connection is established within 'TT_match_join'. Afterwards Test System initiates a connection loss by setting a new key at the local node. Test System then checks that the SUT performs a CP State X1 to E/F transition. Furthermore Test System checks that the SUT applies CP State E or F for T_step_EF and will switch to CP State X1 or X2 afterwards.
| Conformance check | Observed | Result |
|---|---|---|
| SUT terminates the PLC link within TP_match_leave (1.25s) on connection loss (AC dc100) | left after 0.001s | ✓ |
| X1 -> E/F directly on connection loss (no intervening X2 duty step) (AC dc100) | direct X1->E/F | ✓ |
| SUT sends no unexpected SLAC frame for 3.99032s | silent for 3.99032s | ✓ |
| CP E/F step ends within T_step_EF max on connection loss (AC dc100) | ✓ | |
| CP E/F step within T_step_EF [4.0, 8.0]s on connection loss (AC dc100) | E/F step 4.012s | ✓ |
| CP duty after E/F step is a valid AC duty (3..7% or 10..100%) (AC dc100) | post-E/F duty 100.0% | ✓ |
| Measurement | Measured | Target / range | Result |
|---|---|---|---|
| initial CP duty cycle (dc100) | 100.0 % | 100 ± 1.5 % | ✓ |
| CM_SLAC_PARM.CNF response time | 1.5 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_ATTEN_CHAR.IND after sounding | 410.6 ms | ≤ 1200 ms (TT_EV_atten_results) | ✓ |
| CM_SLAC_MATCH.CNF response time | 0.5 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_SET_KEY.CNF response time | 0.2 ms | - | info |
| CP duty at connection loss (X1 premise) | 100.0 % | 100 ± 1.5 % | ✓ |
| CM_SET_KEY.CNF response time | 0.7 ms | - | info |
| left logical network on connection loss (AC dc100) | 0.001 s | ≤ 1.25 s | ✓ |
| T_step_EF on connection loss (AC dc100) | 4.012 s | [4.0, 8.0] s | ✓ |
| CP duty after E/F step (AC: 3..7% or 10..100%) (AC dc100) | 100.0 % | - | info |
| CM_SET_KEY.CNF response time | 0.4 ms | - | info |
TC_SECC_CMN_VTB_PaymentServiceSelection_009.
Test objective: GoodCase; Test System sends PaymentServiceSelectionReq with SelectedPaymentOption Contract and a valid ServiceID while the SUT is configured for externalPayment/eIM, and checks the SUT replies with the current SessionID, FAILED_PaymentSelectionInvalid, then closes TCP within par_CMN_TCP_Connection_Termination_Timeout.
| Conformance check | Observed | Result |
|---|---|---|
| Response echoes the current SessionID | ✓ | |
| Response echoes the current SessionID | ✓ | |
| ResponseCode = FAILED_PaymentSelectionInvalid | got 'FAILED_PaymentSelectionInvalid' | ✓ |
| SUT closes the TCP connection after the error response | ✓ |
| Measurement | Measured | Target / range | Result |
|---|---|---|---|
| CM_SLAC_PARM.CNF response time | 0.9 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_ATTEN_CHAR.IND after sounding | 412.2 ms | ≤ 1200 ms (TT_EV_atten_results) | ✓ |
| CM_SLAC_MATCH.CNF response time | 1.2 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_SET_KEY.CNF response time | 0.2 ms | - | info |
| supportedAppProtocolRes response time | 100.9 ms | ≤ 2000 ms (V2G_EVCC_Msg_Timeout) | ✓ |
| SessionSetupRes response time | 101.4 ms | ≤ 2000 ms (V2G_EVCC_Msg_Timeout) | ✓ |
| ServiceDiscoveryRes response time | 101.3 ms | ≤ 2000 ms (V2G_EVCC_Msg_Timeout) | ✓ |
| PaymentServiceSelectionRes response time | 101.9 ms | ≤ 2000 ms (V2G_EVCC_Msg_Timeout) | ✓ |
| TCP connection close after failure/timeout | 0.1 ms | ≤ 5000 ms (CMN_TCP_Connection_Termination_Timeout) | ✓ |
TC_SECC_CMN_VTB_SDP_007.
Test objective: GoodCase (eIM / no-TLS); the Test System sends an SDP request with Security=0x00 (TLS requested) and TransportProtocol=0x00, and checks the SUT -- which offers only no-transport-security -- answers an SDP response announcing Security=0x10 (no TLS), TransportProtocol=0x00 and a valid port + IP. This is the transport-security-negotiation (mismatch) case that matters for the TCP-only SUT: a TLS-requesting EV must be told to fall back to plain TCP.
| Conformance check | Observed | Result |
|---|---|---|
| SDP response TransportProtocol = 0x00 (TCP) | got 0x00 | ✓ |
| SUT does not echo the requested Security=0x00 (TLS) back to the EV | ✓ | |
| SDP response Security = 0x10 (no-TLS fallback) | got 0x10 | ✓ |
| SDP response carries a valid port + IP | port=50000 addr=fe80::e82a:6ff:fe1a:721f | ✓ |
| Measurement | Measured | Target / range | Result |
|---|---|---|---|
| CM_SLAC_PARM.CNF response time | 1.0 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_ATTEN_CHAR.IND after sounding | 410.5 ms | ≤ 1200 ms (TT_EV_atten_results) | ✓ |
| CM_SLAC_MATCH.CNF response time | 0.6 ms | ≤ 200 ms (TT_match_response) | ✓ |
| CM_SET_KEY.CNF response time | 0.1 ms | - | info |
| SDP advertised TCP port | 50000 | - | info |
No codec self-tests were included in this run.
| pytest version | unknown |
|---|---|
| Report created | 2026-10-10 07:55:52 |
| pytest exit code | 0 |
| Report generator | Pionix conformance tester report generator |
| Generation timestamp | 2026-10-10 07:55:59 |