nasa-ammos / ait-dsn Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
The credential handling currently ignores the optional microsecond handling in CCSDS time objects. This causes issues with credential validation on harnesses that include and use this.
The carrier lock status portion of the report handler code is accessing the incorrect variable
https://github.com/NASA-AMMOS/AIT-DSN/blob/master/ait/dsn/sle/rcf.py#L474
Review & update existing fault handling implementation and/or implement missing parts of fault handling across all Sender and Receiver state machines
See 4.1.8 of https://public.ccsds.org/pubs/727x0b4.pdf
For some reason the tests are failing to import Core libraries. Need to investigate.
The .inv
file for referencing AIT Core docs is out of date.
RCF Version 5 is too new for certain DSN harnesses. Drop RCF test version down to 4 and fix any outstanding issues with the test script.
Currently, AIT's CFDP implementation send and receives PDUs through the file system. The implementation should be updated to send and receive PDUs through sockets.
RAF Version 5 is too new for certain DSN harnesses. Drop RAF test version down to 4 and fix any outstanding issues with the test script.
Update repo to more general AIT-DSN
instead of AIT-SLE
now that CFDP Class 1 has been integrated
Implement Sender NAK procedures (4.1.6.4.1 of blue book https://public.ccsds.org/pubs/727x0b4.pdf)
I'm trying to install AIT-DSN and when I run pip install I get an error that it can't find bliss-core==0.23.0. I'm currently on 0.35.0. Would you recommend reverting to the older version or can I modify the setup script to 0.35.0?
The current SLE config parameters don't provide sane defaults where options exist.
sle:
initiator_id: uname
password: pw
responder_id: uname
peer_password: pw
version: 5
downlink_frame_type: TMTransFrame
heartbeat: heartbeat
deadfactor: deadfactor
buffer_size: buffer_size
responder_port: responder_port
auth_level: auth_level
These have defaults in common.py
if they're not present in config.yaml
but preference is given to config values. All of these need updated to mirror the default if they're going to be included or they need removed. I'm +1 to including them as an FYI for what can be adjusted.
sle:
initiator_id: LSE
# password only matters if we're doing auth and can stay as 'pw'
password: pw
responder_id: SSE
# peer password only matters if we're doing auth and can stay as 'pw'
peer_password: pw
version: 5
downlink_frame_type: TMTransFrame
heartbeat: 25
deadfactor: 5
buffer_size: 256000
responder_port: 'default'
auth_level: 'none'
The current repository name is agency specific and we should considering updating to something more generic. The CCSDS specification implementations that we have are generic and we should reflect that in our naming.
That being said, I don't have any great ideas for generic names at the moment. Let's brainstorm a bit.
Add overview of SLE protocols and AIT implementations.
Hostname / port configuration options were removed from the config in 28ae827ee05095216c9e1ef8928eed9d72c4da8c and justification / tracking ticket seems lacking. Investigate and document here or revert if necessary.
Per conversation below, let's update SLE.__init__
to pull from the config as it was before. Default config values can be left as whatever placeholder makes sense.
Implement Class 2 Receiver NAK procedures for detecting file gaps and sending NAK pdus (4.1.6.4.2 of blue book https://public.ccsds.org/pubs/727x0b4.pdf)
Add method to CLTU class for saving encoded CLTU to a file.
All the RAF, RCF, and CLTU handlers are exactly the same, except for the key to use to access values in the PDU. They can be lifted into the SLE base class.
Need to document usage for users and understand codebase and how to use it.
The socket close in common.SLE.send
is access the socket name incorrectly
https://github.com/NASA-AMMOS/AIT-DSN/blob/master/ait/dsn/sle/common.py#L171
Update repo so all past BLISS naming references are updated to AIT
sle_tlm.yaml and related configs which are unused in the code should be removed to avoid confusion
The current default MIB location specified in
Line 41 in 7fb34ea
/tmp/cfdp/mib
. This should be changed to somewhere in a config folder, not in /tmp
.Frame isn't instantiated and data isn't passed into it at
https://github.com/NASA-AMMOS/AIT-DSN/blob/6d7795326e2e584f6e998e81fc1f4e0c37913941/ait/dsn/sle/raf.py#L337
The default CFDP config paths evaluate to paths that don't exist in the repo on a clean checkout. We should update the handling of this so that we emit a warning when a path doesn't exist and automatically create it as needed or we should fail loudly and early. Any config that should be kept and versioned (probably the MIB?) should end up in the config/
directory somewhere as well.
mib:
path: ../tmp/mib
outgoing:
path: ../tmp/outgoing
incoming:
path: ../tmp/incoming
temp:
path: ../tmp/temp
pdu:
path: ../tmp/pdu
test:
path: ../tmp/test
The majority of the tests fail on a clean checkout due to an assumed directory structure that isn't present.
======================================================================
ERROR: Write MD to file, then read back to header
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/mjjoyce/Coding/AIT/AIT-DSN/bliss/cfdp/test/pdu_test.py", line 131, in test_md_read_write
write_outgoing_pdu(self.fixture, pdu_filename=test_file, output_directory=TEST_DIRECTORY)
File "/Users/mjjoyce/Coding/AIT/AIT-DSN/bliss/cfdp/cfdp.py", line 316, in write_outgoing_pdu
write_to_file(pdu_file_path, bytearray(pdu_bytes))
File "/Users/mjjoyce/Coding/AIT/AIT-DSN/bliss/cfdp/util.py", line 66, in write_to_file
with open(out_path, 'wb') as f:
IOError: [Errno 2] No such file or directory: '/Users/mjjoyce/Coding/AIT/ait-dsn/tmp/test/test_md.pdu'
----------------------------------------------------------------------
Ran 14 tests in 0.492s
FAILED (errors=11)
@lorsposto, could you update this so that it uses existing directories and/or makes and cleanups folders as necessary for testing?
ConditionalTime can also be set as undefined but the current RAF/RCF code isn't supporting this
https://github.com/NASA-AMMOS/AIT-DSN/blob/master/ait/dsn/sle/pdu/common.py#L208
See 4.1.10 of https://public.ccsds.org/pubs/727x0b4.pdf
Update inactivity timer implementation to fulfill inactivity monitor procedures
Small sat missions use AOS transfer frames rather than TM transfer frames.
Line 83 in 7fb34ea
frame._data
to telem socket in RAF._transfer_data_invoc_handler
- needs to be changed either by sub-classing or explicitly overwriting self._handlers
for that handler type (frame._data
is filled in frame class in frames.py)Line 328 in 7fb34ea
Currently the AIT SLE protocols require one DSN hostname to connect to. The correct procedure is to take in a list of hostnames, test them for activity, and connect to whichever one is active. Details on how to test for connectivity can be obtained from Michael Stoloff.
Frame objects should contain the raw data that was in the frame without splitting it into packets. The _transfer_data_invoc_handler
should also be updated to just print all the raw data that was in the transfer frame and not send to the telemetry socket - this handler will be updated at a later point to incorporate independent packet processing.
For example, ait.dsn.sle.common shows nothing on the readthedocs built but locally displays as expected. Need to figure out what's going on.
Implement areas where the Sender should send positive ACK pdus to EOF and Finished PDUs from the receiver.
See 4.1.7.1 of the blue book (https://public.ccsds.org/pubs/727x0b4.pdf)
Implement Positive ACK procedures for Class 2 Receiver
See 4.1.7.2 of the blue book (https://public.ccsds.org/pubs/727x0b4.pdf)
ASU received this error
Line 485 in dbd8c16
README needs the following updates:
@MJJoyce commented on Wed Apr 11 2018
TMTransFrame is incorrectly masking out values for the Version and Spacecraft Id fields
Currently
version
is being masked out of the first byte with 0xA0
spacecraft_id
is being masked out of the first 2 bytes with 0x3F00
This should be:
version
should mask out 1100 0000
or 0xC0
spacecraft_id
should mask out 0011 1111 1111 0000
or 0x3FF0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.