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

Add basic ST info #3

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Add basic ST info #3

wants to merge 2 commits into from

Conversation

crankynetman
Copy link
Collaborator

This is very basic and lacks some meat, but I wanted to at least get a skeleton in place for streaming telemetry style information, as I think that this is probably the Best Way® to get this data off of a network element.

@dwcarder
Copy link
Collaborator

Just so I make sure I get this right, what happens if the central management system thingy reboots or is otherwise starting from a null database. With this method is there way to get the initial table dump and then get the updates on change after that?

@crankynetman
Copy link
Collaborator Author

crankynetman commented Oct 22, 2024

Just so I make sure I get this right, what happens if the central management system thingy reboots or is otherwise starting from a null database. With this method is there way to get the initial table dump and then get the updates on change after that?

¯\_(ツ)_/¯

Any reasonably well designed database that is ingesting this information would only be adding new entries to it's database and I wouldn't think you'd ever allow the NEs to tell it "actually, delete all of that stuff I sent before". I plan on building a lab to test all of this out though. For example I'd really like to know if the NE provides an update when an entry expires, or do you have to infer that based off of configuration?

@dwcarder
Copy link
Collaborator

I'm thinking more about starting from a blank slate. Do you only get incremental updates and then have no idea if/when you actually have the whole picture?

As an example from my SNMP days, on boot we would first do a snmpwalk of the mac address table of a switch. So then we know we have the whole table in our database. Then after that we would listen to mac-change notification traps and do incremental updates. If you were ever worried you were out of sync like if the network element reboots, you could go through that process again.

So I'm wondering if in the ST ecosystem if a similar construct applies.

@crankynetman
Copy link
Collaborator Author

You could definitely do the same approach, where you pull the whole table first and then only subscribe to updates, definitely nothing stopping you from doing that with gNMI or NETCONF/RESTCONF as far as I can tell.

I'm loosely of a mind though that there's no need to pull the entire table and then get updates except for perhaps literally the first time you turn it on. It will be good to get hands-on time with this though and see what rakes rear themselves into my face.

@dwcarder
Copy link
Collaborator

dwcarder commented Oct 22, 2024

I would guess if such a mechanism exists, we just might want to point it out. (I'm somewhat unfamiliar w/ ST and friends)

It ends up being a really common pattern you see inside many protocols: RRDP for RPKI, AXFR vs IXFR for DNS, rsync, ...
Basically for any time you need to keep two database things in sync, it's hard.

@timchown
Copy link
Owner

timchown commented Oct 23, 2024 via email

@timchown
Copy link
Owner

All sounds good!

@timchown
Copy link
Owner

I started creating issues for points we want to capture in -01 and later.

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

Successfully merging this pull request may close these issues.

3 participants