CUI // SP-CTI — CONTROLLED UNCLASSIFIED INFORMATION
ERB/CCB Change Request Package
Engineering Review & Change Control Board
Network Device Migration Change Request
{{ package.change_summary.src_device | default('Source Device') }} → {{ package.change_summary.tgt_device | default('Target Device') }}
Change ID
{{ session_id }}
Requestor
{{ package.change_summary.requestor | default('—') }}
Change Type
{{ package.change_summary.change_type | default('Router Chassis Replacement') }}
Source Device
{{ package.change_summary.src_device | default('—') }}
Target Device
{{ package.change_summary.tgt_device | default('—') }}
Site
{{ package.change_summary.src_site | default('—') }}
Maintenance Window Start
{{ package.change_summary.mw_start | default('TBD') }}
Maintenance Window End
{{ package.change_summary.mw_end | default('TBD') }}
Generated
{{ package.change_summary.generated_at | default('') }}
1 Change Summary & Business Justification

{{ package.change_summary.business_justification | default('No justification provided.') }}

{% if package.change_summary.src_model and package.change_summary.tgt_model %}

Source: {{ package.change_summary.src_model | default('') }}

Device Name{{ package.change_summary.src_device | default('—') }}
Vendor/Model{{ package.change_summary.src_model | default('—') }}

Target: {{ package.change_summary.tgt_model | default('') }}

Device Name{{ package.change_summary.tgt_device | default('—') }}
Vendor/Model{{ package.change_summary.tgt_model | default('—') }}
{% endif %}
2 Impact Analysis
{% set ia = package.impact_analysis | default({}) %}
ParameterValue
Circuits Affected{{ ia.circuits_affected | default(0) }}
Customer-Facing{{ 'Yes' if ia.customer_facing else 'No' }}
Estimated Outage Window{{ ia.estimated_outage_min | default('TBD') }} min
Optic Replacements Required{{ ia.optic_changes | default(0) }}
BGP Sessions Affected{{ ia.bgp_sessions | default(0) }}
MPLS LSPs Affected{{ ia.mpls_tunnels | default(0) }}
3 Risk Assessment
{% set ra = package.risk_assessment | default({}) %}

Risk Tier: {{ ra.tier | default('LOW') }}

{% if ra.factors %} {% for factor in ra.factors %} {% endfor %}
Risk FactorDetail
{{ factor.factor | default('—') }}{{ factor.detail | default('—') }}
{% endif %}
{% if package.port_mapping %}
4 Port Mapping Table
{% for row in package.port_mapping %} {% endfor %}
Source InterfaceSpeedSource OpticTarget InterfaceTarget OpticIP AddressCable IDStatus
{{ row.source_if | default('—') }} {{ row.speed_gbps | default('—') }}{% if row.speed_gbps %}G{% endif %} {{ row.optic_old | default(row.optic_type) | default('—') }} {{ row.target_if | default('—') }} {% if row.optic_change %}{{ row.optic_new | default('?') }} (change){% else %}{{ row.optic_old | default('—') }}{% endif %} {{ row.ip_address | default('—') }} {{ row.cable_id | default('—') }} {{ row.status | default('pending') }}
{% endif %} {% if package.compatibility_matrix %}
5 Compatibility Matrix
{% for row in package.compatibility_matrix %} {% endfor %}
CategoryCheckExpectedActualStatusSeverity
{{ row.category | default('—') }} {{ row.item | default('—') }} {{ row.expected | default('—') }} {{ row.actual | default('—') }} {{ (row.status | default('—')) | upper }} {{ row.severity | default('—') }}
{% endif %} {% if package.test_plan %}
6 Test Plan Summary
{% set tp = package.test_plan | default({}) %}
PhaseTest CasesExecutedPassedFailed
Pre-Migration {{ tp.pre_count | default(0) }} {{ tp.pre_executed | default(0) }} {{ tp.pre_passed | default(0) }} {{ tp.pre_failed | default(0) }}
Cutover Smoke Tests {{ tp.cutover_count | default(0) }} {{ tp.cutover_executed | default(0) }} {{ tp.cutover_passed | default(0) }} {{ tp.cutover_failed | default(0) }}
Post-Migration (24h) {{ tp.post_count | default(0) }} {{ tp.post_executed | default(0) }} {{ tp.post_passed | default(0) }} {{ tp.post_failed | default(0) }}
{% endif %} {% if package.cutover_sequence %}
7 Cutover Sequence
{% for step in package.cutover_sequence %} {% endfor %}
#Circuit / InterfaceDrain ActionRollback ActionEst. Duration
{{ step.seq_no | default(loop.index) }} {{ step.circuit_id | default(step.interface) | default('—') }} {{ step.action | default('—') }} {{ step.rollback_action | default('—') }} {{ step.duration_min | default('—') }} min
{% endif %}
8 Rollback Plan
{% set rp = package.rollback_plan | default({}) %}

{{ rp.description | default('Keep source device racked and powered for 30 days post-cutover. Reconnect cables to source to restore service.') }}

ParameterCriteria
Max Packet Loss{{ rp.max_packet_loss | default('< 0.1%') }}
Max BGP Reconvergence{{ rp.max_reconvergence_sec | default('< 60s') }}
Rollback Trigger{{ rp.rollback_trigger | default('Any CAT1 alarm or BGP session failure for > 5 min') }}
Source Device Retention{{ rp.retention_days | default(30) }} days
9 Go / No-Go Criteria
CriterionThresholdPre-Change Status
All CAT1 compatibility blockers resolved0 open blockers
Pre-migration baseline tests pass100% pass rate
BGP table baseline capturedSnapshot taken
Maintenance window approvedERB/CCB approval
NOC on standbyNOC Lead confirmed
10 Approval Signatures
{% if package.approvals %} {% for appr in package.approvals %} {% endfor %}
RoleNameStatusDateComments
{{ appr.role | default('—') }} {{ appr.name | default('—') }} {{ appr.status | default('pending') }} {{ appr.date | default('—') }} {{ appr.comments | default('') }}
{% endif %}
NOC Lead
Name / Date
Network Architect
Name / Date
Change Manager
Name / Date