Skip to content

Gps#1417

Draft
mattiaswal wants to merge 5 commits intomainfrom
gps
Draft

Gps#1417
mattiaswal wants to merge 5 commits intomainfrom
gps

Conversation

@mattiaswal
Copy link
Contributor

Description

Checklist

Tick relevant boxes, this PR is-a or has-a:

  • Bugfix
    • Regression tests
    • ChangeLog updates (for next release)
  • Feature
    • YANG model change => revision updated?
    • Regression tests added?
    • ChangeLog updates (for next release)
    • Documentation added?
  • Test changes
    • Checked in changed Readme.adoc (make test-spec)
    • Added new test to group Readme.adoc and yaml file
  • Code style update (formatting, renaming)
  • Refactoring (please detail in commit messages)
  • Build related changes
  • Documentation content changes
    • ChangeLog updated (for major changes)
  • Other (please describe):

@mattiaswal mattiaswal added the ci:main Build default defconfig, not minimal label Feb 25, 2026
@mattiaswal mattiaswal force-pushed the gps branch 3 times, most recently from 2fa7f0c to 21e721d Compare February 26, 2026 12:47
@mattiaswal mattiaswal marked this pull request as ready for review February 26, 2026 13:16
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds GPS/GNSS receiver support to the Infix system. The implementation includes hardware abstraction for GPS devices through YANG models, integration with gpsd for device communication, virtual device support for testing, and comprehensive test infrastructure.

Changes:

  • Refactored GPS monitoring from C-based background thread in statd to on-demand Python polling of gpsd in yanger
  • Added GPS feature flag to YANG models with if-feature gates and build-time configuration
  • Implemented comprehensive test infrastructure including NMEA sentence generator and GPS state verification helpers
  • Reorganized CI/CD workflows to run unit tests separately before builds

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
test/infamy/gps.py New GPS test helper module with NMEA sentence generator and state query functions
test/infamy/transport.py Added has_feature() method to check for YANG model features
test/case/hardware/gps_simple/test.py New test case for GPS receiver with NMEA simulation and position verification
test/case/hardware/gps_simple/topology.* Topology files for GPS test case
test/case/hardware/gps_simple/test.adoc Test documentation
test/case/hardware/all.yaml Added GPS test to hardware test suite
test/docker/pip-requirements.txt Added pynmea2 library dependency
test/docker/Dockerfile Fixed path for container upgrade download script
test/.env Updated test container image version to 2.9
test/virt/quad/topology.dot.in Added GPS provider to virtual test topology
test/templates/infix-bios-x86_64.mustache Added QEMU virtio serial GPS device configuration
test/case/hardware/usb/test.py Removed unused netconf import
src/statd/statd.c Removed GPS monitoring thread and SIGHUP handler
src/statd/gpsd.c Deleted - GPS monitoring moved to Python
src/statd/gpsd.h Deleted - GPS monitoring moved to Python
src/statd/Makefile.am Removed gpsd.c and gpsd.h from build
src/statd/python/yanger/ietf_hardware.py Added _gpsd_poll() and refactored gps_receiver_components() to query gpsd directly
src/confd/src/hardware.c Added GPS device configuration handling to generate gpsd.conf
src/confd/yang/confd/infix-hardware.yang Added wifi and gps features with if-feature gates
src/confd/yang/wifi.inc Added wifi feature to module list
src/confd/yang/gps.inc New file defining GPS feature module
src/confd/configure.ac Added --enable-gps build option
package/confd/confd.mk Added GPS feature build configuration
package/feature-gps/25-gpsd.rules Removed hotplug script calls, added virtio-ports rule for testing
.github/workflows/unit-test.yml New workflow for running unit tests separately
.github/workflows/trigger.yml Modified to run unit tests before builds
.github/workflows/build.yml Removed unit test step (moved to separate workflow)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mattiaswal mattiaswal marked this pull request as draft February 27, 2026 12:58
@mattiaswal mattiaswal force-pushed the gps branch 4 times, most recently from bbedc77 to 07f2217 Compare February 28, 2026 14:26
Only possible to run on virtual Qemu instances right now.
Also remove caching of GPS data in operational, gpsd now depend
on its GPS device <dev/gps0> instead of hotplug magic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:main Build default defconfig, not minimal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants