I have tried to send multiple routes for with the same rd and same attributes. But each route is sent via a single update. This could be a serious problem for huge number of routes in a vrf like "Internet in a vrf" scenarios. I have already mailed this issue in project mailing list.
You mean GoBGP packs multiple NLRIs in to a single UPDATE message when
ipv4-unicast, but does not pack NLRIs when l3vpn-ipv4-unicast and separates them
for each UPDATE messages, right?
I've tested on my local with the following codes, as you said,
l3vpn-ipv4-unicast routes are not packed as a single UPDATE message.
I have tried to send multiple routes for with the same rd and same attributes. But each route is sent via a single update. This could be a serious problem for huge number of routes in a vrf like "Internet in a vrf" scenarios. I have already mailed this issue in project mailing list.
Link to thread in sourceforge : https://sourceforge.net/p/gobgp/mailman/message/36311616/
Below is the answer of Iwase Yasuke
You mean GoBGP packs multiple NLRIs in to a single UPDATE message when ipv4-unicast, but does not pack NLRIs when l3vpn-ipv4-unicast and separates them for each UPDATE messages, right?
I've tested on my local with the following codes, as you said, l3vpn-ipv4-unicast routes are not packed as a single UPDATE message.
And also I found that the packaging mechanism for ipv4-unicast are does not implemented to other address families. https://github.com/osrg/gobgp/blob/master/table/message.go
"packerMP" and "packerV4" packs paths to be sent into UPDATE messages, only "packerV4" compares hash of path attributes and compress paths into a single UPDATE message. https://github.com/osrg/gobgp/blob/756cc9162afb675dd7ca159b6f07a6d5b927bcc1/table/message.go#L377-L398