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

[frr]: Move to version 7.2 #3704

Merged
merged 3 commits into from
Nov 6, 2019

Conversation

pavel-shirshov
Copy link
Contributor

@pavel-shirshov pavel-shirshov commented Nov 5, 2019

- What I did
Moved to frr 7.2

- How I did it
Changed frr sources and adapted patches

- How to verify it
Build an image and run it on your dut

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

@pavel-shirshov
Copy link
Contributor Author

@tylerlinp I've removed 0005-Support-VRF.patch from the patchset. I see that sonic-net/sonic-frr#15 you asked for RT_TABLE_COMPAT instead of RT_TABLE_UNSPEC from frr team. You referred to fpmsyncd compatibility. Is it still valid? Should I add an extrapatch for frr 7.2?
Thanks

@tylerlinp
Copy link
Contributor

tylerlinp commented Nov 5, 2019

@pavel-shirshov It doesn't matter RT_TABLE_UNSPEC or RT_TABLE_COMPAT, it would be ignored, so there is no need to change it again. Yes, a new patch is needed in frr 7.2 to revert the table_id to vrf_id. Now fpmsyncd codes are basing on vrf_id.

This is the part to revert:

@@ -224,14 +224,17 @@ static int netlink_route_info_fill(netlink_route_info_t *ri, int cmd,
				   rib_dest_t *dest, struct route_entry *re)
{
	struct nexthop *nexthop;
+	struct zebra_vrf *zvrf;

	memset(ri, 0, sizeof(*ri));

	ri->prefix = rib_dest_prefix(dest);
	ri->af = rib_dest_af(dest);

	ri->nlmsg_type = cmd;
-	ri->rtm_table = zvrf_id(rib_dest_vrf(dest));
+	zvrf = rib_dest_vrf(dest);
+	if (zvrf)
+		ri->rtm_table = zvrf->table_id;
	ri->rtm_protocol = RTPROT_UNSPEC;

@pavel-shirshov
Copy link
Contributor Author

@tylerlinp Thank you for your prompt reply.
Would it be better to change fpmsyncd to use table_id?
So we can use standard frr?
Thanks

@pavel-shirshov
Copy link
Contributor Author

retest vs please

@pavel-shirshov pavel-shirshov marked this pull request as ready for review November 5, 2019 19:02
@lguohan
Copy link
Collaborator

lguohan commented Nov 5, 2019

there are a few patches removed? can you explain why? because they are included in the frr 7.2?

@pavel-shirshov
Copy link
Contributor Author

pavel-shirshov commented Nov 5, 2019

Yes. All removed patches are parts of FRR 7.2 now.

@lguohan
Copy link
Collaborator

lguohan commented Nov 6, 2019

@tylerlinp , can you follow up on Pavel's question?

@tylerlinp
Copy link
Contributor

@tylerlinp Thank you for your prompt reply.
Would it be better to change fpmsyncd to use table_id?
So we can use standard frr?
Thanks

In my oponion using vrf_id is better. If to use table_id, it will get much more work and loss of efficiency. It is a subject deserved to discuss.

@pavel-shirshov pavel-shirshov merged commit aa1a136 into sonic-net:master Nov 6, 2019
@pavel-shirshov pavel-shirshov deleted the pavelsh/frr72 branch November 6, 2019 19:57
zhenggen-xu pushed a commit to zhenggen-xu/sonic-buildimage that referenced this pull request Jan 10, 2020
* Use 7.2 tree to generate frr packages

* Adapt patches for frr/7.2

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

Successfully merging this pull request may close these issues.

3 participants