I am trying to make a GVRP host to an endstation. The idea is that this host has static VLAN entries and it sends GVRP messages to a switch which creates dynamical VLAN entries and propagates GVRP messages further.
I have read (=tried to understand) GVRP section of IEEE 802.1Q and some other GVRP related documents but lots of things are unclear for me.
IEEE 802.1Q has "skeleton code" for implementing GVRP but I'm surprised that there doesn't seem to be any complete (or even less complete) source codes published in internet. There are few things, which I don't understand in above mentioned skeleton code. For example:
- include files require gip.h but GIP is not needed to implement in endstation (only 1 participant), right?
- where is the implementation of these "system supplied routines" such as syspdu_tx & syspdu_alloc? What does sys.h include?
- are there any clear instructions anywhere how to build GVRP frame? IEEE code just uses some gvf_wrmsg & gvf_rdmsg routines without a word of their implementation.
I also wonder what IEE 802.1Q means by ES_REGISTER_VLAN_MEMBER & ES_DEREGISTER_VLAN_MEMBER service primitives. Are these primitives implemented somewhere? If not, why such specific name?
I do see an alternative way to implement GVRP functionality by using SNMP to configure static VLANs to switch which endstation is connected and therefore not needing to simulate GVRP functionality in endstation itself. However this might be less optimal solution.