Commit Graph

241 Commits (75a3dd59eef36b213b0211bda37ba1c323a1a2f6)

Author SHA1 Message Date
Joe Calderon 75a3dd59ee
Some safety fixes (#101)
* Fix uninitialized memory read vulnerability in packet validation

* Fix buffer overflows in temporary file generation
2026-07-03 12:01:20 -04:00
dependabot[bot] d6b4695c4c
Bump rand from 0.8.5 to 0.8.6 in /src/rust (#100)
Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.8.6)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.8.6
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-23 22:25:12 -04:00
bebopagogo 0c4b130c7b fixed NormCmdCCMsg item parsing and iteration per issue reported by CrunchyJohnHaven 2026-05-23 20:48:17 -04:00
Caleb fcd2554051
Add rust bindings (#98)
* add rust bindings to norm

* modify PR description

* remove PR description since it is redundant

* remove weird character

* remove __pycache__ and add __pycache__ to gitignore

---------

Co-authored-by: cbowers <cbowers@anduril.com>
2026-05-23 20:25:32 -04:00
Fabrice Fontaine b0c38b4184
wscript: fix build with waf >= 2.1.0 (#86)
Replace add_option_group by add_argument_group to a build failure with
waf 2.1.0 and
bd5c22d484:

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2026-03-12 11:23:09 -04:00
Jeffery Weston 823e3e8c88 fix npc compilation error 2025-07-23 13:32:38 -04:00
bebopagogo f3a60510ff Merge branch 'master' of https://github.com/USNavalResearchLaboratory/norm
merging remote changes
2025-04-23 09:52:33 -04:00
bebopagogo 6a2da08d86 edits 2025-04-23 09:50:08 -04:00
bebopagogo 9500578e89 Merge branch 'master' of https://github.com/USNavalResearchLaboratory/norm
Incorporation of formatting tweaks with primary code.
2025-04-22 16:16:04 -04:00
bebopagogo 3802edadf1 minor formatting tweak 2025-04-22 16:15:58 -04:00
Jeff Weston 1c534c05f1
Remove debug lines
Removed debug lines added in bc6e81f to fix #94
2025-03-31 10:52:48 -04:00
mullerj 4fd768f9cc
.NET NORM Extension (#85)
* .NET Extension Design (#5)

* Designed .NET classes from Java

Co-authored-by: Sergiy <sergiy.yermak.ctr@us.navy.mil>

* Added NormApi static class

* Started on api uml

Co-authored-by: mullerj <mullerj@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Add static methods to api uml

* add static method to normapi uml

* Add enums

* Changes

* Overload methods with defaults

* type marshalling

* change handles to in nuint

* marshall more handles

* Removed in/ref and reformatted.

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* Removed duplicate enums

* Removed NormEvent from NormApi

* Fixed typo

* design NormInstance methods

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* Fixed CreateInstance method

* Changed handles to long

* Change id types to long

* Remove condition checks that do nothing

* Removed UserData functions

* Removed NormAlloc() and NormFree()

* Cleaned up some API methods

* Fix misspelling

Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Design NormSession methods

Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Added missing comma

* Uml for enqueue
Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* Updated design based on enqueue test

* Updated EnqueueFile sequence diagram

Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>

* Moved sequence diagrams

* Added constants to NormApi

* Removed method level sequence diagrams

---------

Co-authored-by: Sergiy <sergiy.yermak.ctr@us.navy.mil>
Co-authored-by: syermak <syerm001@odu.edu>
Co-authored-by: mullerj <mullerj@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>
Co-authored-by: Sergiy <47069243+SergiyYermak@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfreeman3@gmail.com>

* .NET Extension Design Implementation (#10)

* changes

* Removed GetsNextEvent test

* Implemented GetNextEvent

* Fixed NormStream design

* Fixed HasNextEvent design

* Added NormGetNextEvent overload

* Implemented HasNextEvent

* Updated design

* Added Kernel32 to design

* Modified to use .NET EventWaitHandle instead of kernel32 P/Invoke

* Modified to only copy norm.dll on Windows

* Added copy for non Windows

* add start and stop receiver

* add receiver

* Modified non-Windows to use Socket for HasNextEvent

* Deleted NormFileTests since they break the other tests

* Fixed ReceiverReceives test

* Updated ReceiverReceives test name

* Modified ReceivesFile to get all events instead of adding to array

* Cleaned up NormInstance formatting

* Refactored tests

* Updated NormFile

* Implemented send stream

* Implemented receive stream

* Implemented NormFile Name

* Updated ReceivesFile to use events

* data enqueue

* Fixed merge

* Fixed ReceivesData test

* Modified data test to compare collections without order

* stop instance working

* enqueues data

* Reverted upgrade to .NET 7

* Restartinstance is working

* Modified NormData to read bytes instead of as string

* Removed using statements in NormData

* Updated design

* Updated design

* Switched to nint

* Switched design to nint

* unfinished test for suspendinstance

* working suspend instance

* added resume function to instance

* Updated session send and receive data tests

* Removed launch settings

* session configuration functions

* Modified to use random port due to intermittent failed tests due to session conflict

* Modified to randomize text content

* Implemented NormNode Address

* Updated design for NormNode

* Implemented NormNode Grtt

* Implemented NormNode Id

* implement session configuration functions

* instance

* missing return types

* add missing handle param

* normNode

* Implemented RequeueObject

* Implemented SetWatermark and AckingNode

* Implemented CancelWatermark

* Implemented ResetWatermark

* Implemented SendCommand

* Implemented CancelCommand

* Implemented DebugLevel. Removed DebugPipe

* Updated SetTxPort

* Updated SetRxPortReuse

* Implemented SetEcnSupport

* Added test for RxLoss

* Implemented ReportInterval

* Refactored session calculated properties

* Updated enqueue methods

* Updated StreamOpen design

* Fixed SetWatermark overload

* Implemented GetAckingStatus

* Removed SendCommand overload

* Removed SetSilentReceiver overload

* Implemented NormEvent ToString

* Implemented NormFile Rename

* Implemented SetUnicastNack

* Added ReceivesCommand test

* Implemented SetNackingMode

* Implemented SetRepairBoundary

* Added Fact to SetsRepairBoundary test

* Implemented SetRxRobustFactor

* Implemented NormNode Command

* Implemented FreeBuffers

* Implemented Retain and Release

* Fix using namespaces

* test get object type

* NormObject get size

* NormObject setNackingMode

* NormObject get bytes pending

* NormObjet cancel

* NormObject retain

* NormObject release

* NormObject get sender

* NormObject get hashcode

* normObject equals

* Implemented NormObject Equals

* Removed redundant cast

* Removed unused using directive

* Removed static using

* Added NormApi to global Usings

* Added Enums to global usings

* Cleaned up NormObject Equals

* Cleaned up NormObject GetHashCode() test

* Cleaned up warning

* normStream has vacancy

* normStream read offset

* normStream seek msg start

* NormEventListener interface

* normStream set push enable

* normStream set auto flush

* Simplified NormApi usage

* Updated design of NormStream

* public interface

* Fixed INormEventListener

* fixing name space

* commit initializing  inputstream

* Added StreamBreakException

* Fixed formatting

* Fixed formatting

* Fixed formatting

* Initial implementation of NormOutputStream

* Cleaned up NormObject Equals

* NormInputStream class

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* normStream data offset

* move offset length arithmetic into write method

* building normInputstream

* all method implemented

Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* NormStreamRead

* Fixed build error

* Completed ReceivesStreamWithOffset test

* Added retries to GetsCommand test

* Updated type for NormStreamRead

* Simplified NormStream Read

* Simplified NormStream Write

* Added dataOffset to DataEnqueue

* Fixed DataEnqueue overload

* Added infoOffset to FileEnqueue

* Added infoOffset to StreamOpen

* Updated design

* Removed extra overload of FileEnqueue

* Removed DataEnqueue overloads

* Removed extra overload from StreamOpen

* Added HasNextEvent overload

* Implemented OpenDebugPipe

* add thread locking

* locking for properties

* Not supported exceptions

* Implementing sychronize

* fixing inputstream

* adding sychronize message

* Reorganized NormApi and updated design

* Modified to skip GetsCommand test on IO exception

* WIP: 537b706 adding sychronize message

* adding message to expections

* Fixed test file cleanup

* Added locking to NormSession methods that use static field

* Changed StartsSender to skippablefact

* Changed to SetsNackingMode to skippable fact

* Converted tests to skippable

* Converted more tests to skippable

* Converted all tests that start sender to skippable

* Updated README about skipped tests

* documentation

* 2 doc

* Cleaned up input and output stream classes

* Cleaned up NormApi

* Updated NormOutputStream Write

* Added document comments to NormApi

* Added comments to NormApi

* Removed unnecessary usings

* Added comments to NormApi

* set up the rest of doc

* api documentation

* fix typo

* fix spacing

* Doc for instance need clean up

* clean up

* document norm session

* NormStream documentation

* commit for node

* NormObject docs

* Updated NormApi comments

* Cleaned up NormInstance comments

* Cleaned up NormNode comments

* Cleaned up NormObject comments

* Cleaned up NormSession comments

* Cleaned up NormStream comments

* Cleaned up NormObject comments

* Adding commits

* Update get commit

* clean up on data and event

* Norm Data change

* clean up normfile docs

* clean up normstream

* clean up api docs

* Fixed data

* space approved

* Cleaned up NormData comment

* documentation clean up

* Update the ReadMe

* Cleaned up comments

* Added comments to NormAckingStatus

* Added comments to NormEventType

* Added comments to NormFecType

* Added comments to NormNackingMode

* Added comments to NormObjectType

* Added comments to NormProbingMode

* Added comments to NormRepairBoundary

* Added comments to NormFlushMode

* Added comments to NormSyncPolicy

* Cleaned up comments.  Fixed default for StartSender

* Added comments to constants

* Moved constants to relevant classes

* Updated design

* Removed NormDataDetachData since it is not referenced

* Updated design

* Updated input and output stream design

* Updated packaging README

* Removed language version since redundant

* Cleaned up project file

* Updated to package from the dotnet directory (test project is set to not pack)

* Added version to project

---------

Co-authored-by: syermak <syerm001@odu.edu>
Co-authored-by: Sylvester Freeman III <Slyfreeman3@gmail.com>
Co-authored-by: Sergiy <47069243+SergiyYermak@users.noreply.github.com>
Co-authored-by: mullerj <mullerj@users.noreply.github.com>

* NormSession typos in comments (#12)

* Fixed default function comments in NormSession

* Fixed typos in NormSession

* Fixed default function comments

* Feature/9 net norm extension target architecture packages (#13)

* Added Win64 project and release configuration

* Added project reference to Win64 project

* Added Win32 project. Moved norm build actions to scripts

* Added linux .NET extension project

* Modified linux project to copy to output directory

* Fixed linux pack script

* Changed Linux project to copy always

* Changed Linux project package path

* Moved Windows libraries to runtimes path

* Renamed runtime specific projects

* Codespace Configurations (#15)

* Created devcontainer.json

* .NET norm extension GitHub actions (#16)

* Added .NET action

* Update dotnet-publish.yml to use source branch (#18)

* .NET norm package publish (#19)

* Added steps to copy package and check workspace

* Changed trigger for testing

* Removed if statement

* Updated dotnet-publish.yml to copy to  $GITHUB_OUTPUT

* Changed from variable to path

* Removed copy command

* Modified to check runner directory

* Added step to publish package

* Added package write permission

* Added job to publish win-x64

* Fixed package win-x64 step

* Added job to publish win-x86

* Added skip-duplicate to publish commands

* Added publish job

* Changed to . for linux find

* Added workflow trigger

* Added branches filter

* Publish test results (#21)

* Added step to publish test results

* Changed upload step to use wildcard

* Added quotes

* Changed directory to relative path

* Fixed upload step

* Added step to publish test results

* Added permissions

* Dev Container extensions (#23)

* Added extensions

* Cut down on extensions

* Added extension

* Removed pull requests extension

* Added workspace recommendation

* Added powershell feature

* Fixed powershell version

* Updated powershell version and added extension

* Updated to latest powershell

* Dev Container performance (#25)

* Fixed devcontainer format

* Added dotnet-linux-x64 devcontainer

* Changed devcontainer image to python

* Pinned OS version

* Updated devcontainer base image

* Reverted changes to devcontainer

* Moved linux devcontainer file

* Updated dotnet-publish to use subfolder

* Revert "Dev Container performance (#25)" (#27)

This reverts commit 2be146ceed.

* Update action versions for dotnet-publish.yml

* Update action versions for dotnet.yml

* Fixed ReceivesData test to use received events for actual data

* NormData Refactor (#30)

* Switched NormData Data property to a method

* Corrected NormData summary comment

* Updated NormData GetData to use Marshal.Copy

* Fixed warnings

* Updated NormData design

* NormDataEnqueue Refactor (#31)

* Switched NormDataEnqueue to use IntPtr

* Updated NormApi design

* Updated GetSession to use lock

* Updated GetSession to TryGetValue

* DataEnqueue Refactor (#33)

* Refactored DataEnqueue to use pointer arithmetic

* NormDataEnqueue Refactor (#34)

* Updated to use SafeBuffer

* Added ByteBuffer and DirectByteBuffer

* Added pointer overload to DataEnqueue

* Updated FileEnqueue() to use pointer arithmetic

* Updated NormStream to use pointer arithmetic

* Updated NormSendCommand to nint

* Updated NormNodeGetCommand to nint

* Updated NormNodeGetAddress to use nint for buffer

* Updated NormStreamRead to use nint for buffer

* Updated NormObjectGetInfo to use nint for buffer

* Updated NormFileGetName nameBuffer to nint

* Updated NormFile.Name to use PtrToStringAnsi

* Updated NormFile.Name to use stackalloc (#37)

* Updated NormNode.Address to use stackalloc and create IPAddress from bytes

* NormObject Refactor

* Updated NormObjectGetInfo to use byte array

* Updated design

* NormStream Refactor

* Updated NormStream Write to use fixed statement

* Updated NormStream Read to use fixed statement

* Updated design

* NormNode Refactor

* Updated NormNodeGetAddress to use byte* to avoid casting

* Updated NormNode GetCommand to use fixed statement

* Updated design

* NormFile Refactor

* Updated NormFileGetName to use sbyte* to avoid casting

* Updated design

* Added workflow_dispatch to workflows

---------

Co-authored-by: Sergiy <sergiy.yermak.ctr@us.navy.mil>
Co-authored-by: syermak <syerm001@odu.edu>
Co-authored-by: mullerj <mullerj@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfree3@users.noreply.github.com>
Co-authored-by: Sergiy <47069243+SergiyYermak@users.noreply.github.com>
Co-authored-by: Sylvester Freeman III <Slyfreeman3@gmail.com>
2025-03-26 01:07:19 -04:00
PM 0c2e151a77
use data race safe gmtime variant as in NormSession::OnReportTimeout (#91)
Co-authored-by: Pat Mills <patrick.m.mills2@boeing.com>
2025-03-26 01:03:34 -04:00
Brian Adamson 9a613d4150
Update cmake.yml 2025-03-26 01:01:30 -04:00
Brian Adamson a626a98f63
Update cmake.yml 2025-03-26 00:59:42 -04:00
Brian Adamson d4faaebba4
Update cmake.yml 2025-03-26 00:50:39 -04:00
Brian Adamson c8ffc272ee
Update cmake.yml 2025-03-26 00:48:43 -04:00
bebopagogo 006f9d29aa Merge branch 'master' of https://github.com/USNavalResearchLaboratory/norm 2025-01-26 20:27:11 -05:00
bebopagogo b7b252fd55 fixes to npc (NormPrecoder) and updated its documentation. Include 'auto' block sizing' feature 2025-01-26 20:26:49 -05:00
bebopagogo 7a6c09ae17 fixes to npc (NormPrecoder) and updated its documentation. Include 'auto' block sizing' feature 2025-01-26 20:13:35 -05:00
bebopagogo 9a28f755cf pulled updated submodule code 2025-01-02 11:27:11 -05:00
bebopagogo bc6e81feda fix to limit rate increase to no more than double during slow start 2025-01-02 11:19:11 -05:00
bebopagogo 0c6e516c90 pulled updated submodule code 2024-12-27 21:28:52 -05:00
bebopagogo 2dfd41a0c5 fix to waf build of normCast example 2024-12-27 16:32:05 -05:00
bebopagogo 669fc4f671 brought in protolib with bug fixes 2024-06-08 18:13:29 -04:00
bebopagogo ebc65bd140 pulled updated submodule code 2024-06-08 17:39:28 -04:00
bebopagogo 78052bdb29 Update incl. fix to MacOS Makefile
Merge branch 'master' of https://github.com/USNavalResearchLaboratory/norm
2024-06-08 17:38:36 -04:00
bebopagogo f242b53b72 fix to MacOS Makefile 2024-06-08 17:38:25 -04:00
bebopagogo 8da63844ed some 'norp' code cleanup 2024-06-08 17:22:13 -04:00
bebopagogo 0015af3bb6 some 'norp' code cleanup 2024-06-08 17:20:27 -04:00
bebopagogo 2ae69e6e96 fix to NormFile::Open() where 'flags' were not properly saved and affected NormFile::Rename() 2024-01-28 20:26:15 -05:00
bebopagogo 6188965887 fixed improper delete operator usage in normApp.cpp and minor tweaks 2024-01-24 13:43:38 -05:00
LVancina a992176873
Documentation updates and pynorm example bug fixes (#82)
* Added notes about waf execution in BUILD.TXT

* Updated instructions for cloning and running make

* Added more detailed instructions for win32 builds

* Fixed typo on line 20 (capitalized 'f') that caused the command to fail

* Generic editing and replaced dead URLs

* Substituted setuptools package for the deprecated distutils in setup.py

* Fixed typo in 'norm.exe' file path in Win32 build instructions

* Fixed a bugs in normCast.py and normFileSend.py

---------

Co-authored-by: Lucas <lucas.vancina@nps.edu>
2024-01-24 13:15:06 -05:00
bebopagogo af9a238a70 pulled updated submodule code 2023-09-03 15:01:44 -04:00
bebopagogo 4b34fffa8e pulled updated submodule code 2023-09-02 22:16:16 -04:00
bebopagogo 8ae9df5607 updated gradle and tweaked build.gradle file to API version 24 2023-09-02 22:15:23 -04:00
bebopagogo 69a9e4828d added examples/chant.cpp for simple command-line NORM chat app 2023-06-03 23:05:39 -04:00
bebopagogo 34e582bfac added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 20:10:16 -04:00
bebopagogo a15e91379e added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:56:18 -04:00
bebopagogo 11b271cc28 added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:51:22 -04:00
bebopagogo 1af8531178 added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:32:47 -04:00
bebopagogo 17dc41ab72 added examples/chant.cpp for simple command-line NORM chat app 2023-05-31 19:30:36 -04:00
bebopagogo 61b6e31f6f pulled updated submodule code 2023-01-29 20:02:52 -05:00
bebopagogo 5b7239523f pulled updated submodule code 2023-01-28 17:18:34 -05:00
bebopagogo 78d7ac78a2 pulled updated submodule code 2023-01-28 17:00:37 -05:00
bebopagogo a319a5b2d6 pulled updated submodule code 2023-01-28 16:10:56 -05:00
bebopagogo 6e7f2c3548 pulled updated submodule code 2023-01-28 16:09:22 -05:00
mullerj b8ce922a36
Fixed NormStreamSend (#1) (#77) 2023-01-16 16:44:29 -05:00
bebopagogo c0463960cb updated some sprintf() calls to snprint() 2023-01-14 17:30:04 -05:00
bebopagogo 92927c8a37 updated pynorm Python binding to use Python 3 contributions from Honglei 2022-11-11 20:17:30 -05:00