---
name: dataminer-dcf
description: 'DataMiner Connectivity Framework (DCF) for connector development: physical/logical interfaces, connections, DCF properties, DCF system tables (65049/65050/65051), the DCFHelper class, and best practices for modelling matrices, routers, and patch panels. Use when adding or modifying DCF interfaces, connections, or related QAction code.'
argument-hint: 'Describe the DCF task: e.g. "define dynamic interfaces", "create internal connections in a QAction", "set up DCF for a matrix", "model patch-panel connectivity"'
license: LicenseRef-Skyline-Agent-Marketplace
metadata:
updated: 2026-05-27
version: 1.1
---
# DataMiner Connectivity Framework (DCF)
DCF standardizes how device connectivity is provisioned and managed within DataMiner. It enables connectors to:
- Define **interfaces** (inputs, outputs, bidirectional ports) on elements
- Establish **connections** between interfaces — both within a single element and across elements
- Attach **properties** (metadata key-value pairs) to interfaces and connections
- Visualize signal paths in **Visio drawings** and **dashboards** (node-edge graphs)
## When a Connector Needs DCF
Use DCF when a device or system has physical or logical ports/interfaces whose connectivity must be tracked, visualized, or queried. Common use cases: switches, routers, matrices, signal-processing chains, any equipment where "what is connected to what" matters.
---
## Core Concepts
### Interface Types
| Type | Direction | Use Case |
|------|-----------|----------|
| `in` | Input only | Receives signal (e.g. decoder input) |
| `out` | Output only | Sends signal (e.g. encoder output) |
| `inout` | Bidirectional / virtual | Bidirectional ports, or virtual grouping interfaces |
### Connection Types
| Type | Direction | Scope |
|------|-----------|-------|
| **Internal** | Input → Output | Within the same element (signal passes through a device) |
| **External** | Output → Input | Between two different elements (cable/link between devices) |
### Properties
Static key-value metadata attached to interfaces or connections. Properties describe characteristics (e.g. bandwidth, VLAN ID, signal format) and are queryable via GQI.
### Virtual Interfaces
An `inout` interface with the special property `[Linked Interface ID]` references another interface, inheriting its alarm state and acting as a logical grouping point.
---
## Quick-Start XML
### Fixed Interfaces
```xml
```
### Dynamic Interfaces (Table-Based)
```xml
```
- `dynamicId` = table parameter ID providing the interfaces
- `dynamicIndex` = `"*"` for all rows, or a specific key filter
- Interface name = Group name + `" "` + row display key
---
## Hard Rules (Anti-Hallucination)
1. **Never set `volatile="true"`** on tables used for DCF (dynamic interfaces). Volatile tables lose data on restart, breaking DCF state.
2. **Internal connections** flow input → output. **External connections** flow output → input. Never reverse these.
3. **Never remove connections automatically** without explicit logic — accidental removal causes service outages.
4. **Avoid triggering QActions on DCF system table changes** (parameter IDs 65049–65102) — this creates deadlock risk with SLNet.
5. The **NuGet helper package** is `Skyline.DataMiner.Core.ConnectivityFramework.Protocol` — use it for DCF operations instead of raw SLNet calls.
---
## Skill Routing Table
| Task | Load |
|------|------|
| Understand interface/connection types and properties | `references/dcf-interfaces-and-connections.md` |
| Write or edit ParameterGroups XML (fixed, dynamic, matrix) | `references/dcf-xml-definitions.md` |
| Look up DCF system table parameter IDs | `references/dcf-system-tables.md` |
| Write C# QAction code for DCF operations | `references/dcf-api-reference.md` |
| Use the DCF helper NuGet package | `references/dcf-helper-class.md` |
| Review DCF implementation for correctness | `references/dcf-best-practices.md` |
| Write or edit `protocol.xml` structure (non-DCF) | `dataminer-xml-authoring` |
| Write or modify C# QAction code (non-DCF) | `dataminer-qaction` |
---
## Reference Files
Load these on demand — only when relevant to the task.
| File | Contents | Load When |
|------|----------|-----------|
| `dcf-interfaces-and-connections.md` | Interface types, connection types, properties, virtual interfaces | Understanding or explaining DCF concepts |
| `dcf-xml-definitions.md` | ParameterGroups XML, fixed/dynamic/matrix interfaces, alarm linking, attributes | Writing or editing DCF XML in protocol.xml |
| `dcf-system-tables.md` | 4 DCF system tables with all parameter IDs (65049–65102) | Looking up DCF table/column IDs, debugging DCF data |
| `dcf-api-reference.md` | SLProtocol DCF methods, ConnectivityConnection/Interface/Property classes | Writing C# QAction code for DCF operations |
| `dcf-helper-class.md` | NuGet package reference, installation, usage patterns | Setting up or using the DCF helper library |
| `dcf-best-practices.md` | Stability, performance, alarm monitoring, connection management | Reviewing DCF implementations, avoiding pitfalls |
---
## Documentation Links
- [DCF Overview](https://aka.dataminer.services/advanced-dcf)
- [Interfaces and Connections](https://aka.dataminer.services/advanced-dcf-interfaces-and-connections)
- [Defining Interfaces](https://aka.dataminer.services/advanced-dcf-defining-interfaces)
- [DCF and Matrices](https://aka.dataminer.services/advanced-dcf-matrices)
- [DCF Tables](https://aka.dataminer.services/advanced-dcf-tables)
- [DCF Class Library](https://aka.dataminer.services/advanced-dcf-data-miner-class-library)
- [DCF Helper Class](https://aka.dataminer.services/advanced-dcf-helper)
- [DCF Best Practices](https://aka.dataminer.services/advanced-dcf-best-practices)
- [DCF Tutorials](https://aka.dataminer.services/dcf-tutorials)
- [ParameterGroups.Group Schema](https://aka.dataminer.services/protocol-parameter-groups-group)
- [ConnectivityFramework NuGet](https://www.nuget.org/packages/Skyline.DataMiner.Core.ConnectivityFramework.Protocol)