Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PPA Id should be in the format zone/ppa/$SAS_ADMINISTRATOR/PPA-ID string. #828

Open
chandanahs opened this issue Oct 15, 2018 · 5 comments

Comments

@chandanahs
Copy link

As per WINNF-TS-0096-V1.3.0 SAS-SAS Protocol Technical Specification.pdf,
8.5 Zone Definition Message
id | string |
• Format: zone/$CREATOR/$ZONE_ID
• $CREATOR: SAS Administrator ID or static government zone definition source ID
• $ZONE_ID: the identification of the referenced zone defined by the $CREATOR
When usage is equal to “PPA” the format of the $CREATOR string is “ppa/$ADMINISTRATOR_ID” and the $ZONE_ID is equal to the PPA-ID string.

Example PPA data says zone/ppa/$SAS_ADMINISTRATOR/PPA-ID

cat Spectrum-Access-System/schema/ZoneDataOfPpaExample.json
{"id":"zone/ppa/SAS_Admin_1/1","name":"PPA Zone 0","creator":"SAS_Admin_1","usage":"PPA","terminated":false,"ppaInfo":{"palId":["pal/05-2017/20041084200/A"],"ppaBeginDate":"2017-05-01T00:00:00Z","ppaExpirationDate":"2017-05-01T00:00:00Z","cbsdReferenceId":["CBSD_228_RED/c36153d7b423721145f3f3ac9e28bd02211ff03a"]},"zone":{"features":[{"geometry":{"coordinates":[[[-97.2386169433594,38.8653748516116],[-97.3196411132812,38.7615795117574],[-97.1699523925781,38.7390884418769],[-97.1617126464844,38.867513370012],[-97.2386169433594,38.8653748516116]]],"type":"Polygon"},"properties":{},"type":"Feature"}],"type":"FeatureCollection"}}

But the generated PPA ID in FAD_2 is : "zone/ppa/admin id/PAL ID/uuid"
Spectrum-Access-System/src/harness/util.py:makePpaAndPalRecordsConsistent:
ppa_record['id'] = 'zone/ppa/%s/%s/%s' % (ppa_record['creator'],
ppa_record['ppaInfo']['palId'][0],
uuid.uuid4().hex)

ppa_record['ppaInfo']['palId'][0] to be removed??

@kate-harrison
Copy link
Contributor

I think we can consider that "PAL ID/uuid" is the PPA ID in this example.

@chandanahs
Copy link
Author

Once we get the FAD dump from PeerSASes, validation of the data before populating to our Databases fails as more than 4 tokens in the PPA id.

@kate-harrison
Copy link
Contributor

I don't believe the character "/" is forbidden as part of the PPA ID, so you may need to make your code a bit more flexible.

@syandun
Copy link

syandun commented Oct 16, 2018

It's clear from the "id" field format that '/' is a delimiter, so it it should not be appropriate to use '/' as part of one argument that composes the field.
Also, you can say the same about the $ADMINISTRATOR_ID, that '/' is not forbidden. So how would you differentiate the $CREATOR from the $PPA_ID without peers first exchanging admin information to exactly know how the admin Id looks? For example a string like:
"zone/ppa/nokiaAdminGroup/nokiaAdmin23/nokiaPpaGroup/nokiaPpaSubGroup3/nokiaPpaId3-4"

@kate-harrison
Copy link
Contributor

I'm not sure there is any need for the SAS to parse the ID field, which is probably why no other SASes have reported problems with this. If you really want to update the ID, you are welcome to create a PR to do so. But please be sensitive to the fact that ITS is doing their best to conclude their analysis of this code very soon, and even small changes at this point can be quite disruptive. We should do our best to make only critical code changes so that we avoid introducing delay into their process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants