digraph G {
	rankdir = LR;
	label = "Gb protocol stack with NS over FR";

	"BSSGP_BVC_CT" [
		shape = "record"
		label = "<f0> BSSGP_BVC_CT | <BSSGP_SP> BSSGP_SP | <BSSGP_SP_SIG> BSSGP_SP_SIG | <BSSGP_PROC> BSSGP_PROC | <GLOBAL> GLOBAL | <MGMT> MGMT | <BVC> BVC"
	]

	"BSSGP_CT" [
		shape = "record"
		label = "<f0> BSSGP_CT | <PROC> PROC | <GLOBAL> GLOBAL | <RIM> RIM | <MGMT> MGMT | <BVC> BVC | <BSCP> BSCP"
	]

	"NS_CT" [
		shape = "record"
		label = "<f0> NS_CT | <NS_SP> NS_SP | <NSVC> NSVC | <NS_CTRL> NS_CTRL | <NSIP_PROC> NSIP_PROC"
	]

	"NSVC_CT" [
		shape = "record"
		label = "<f0> NSVC_CT | <NS_SP> NS_SP | <NSCP> NSCP"
	]

	"NS_Provider_FR_CT" [
		shape = "record"
		label = "<f0> NS_PRovider_FR_CT | <NSE> NSE | <FR> FR | <FR_PROC> FR_PROC"
	]

	"FR_Emulation_CT" [
		shape = "record"
		label = "<f0> FR_Emulation_CT | <CLIENT> CLIENT | <PROC> PROC | <FR> FR"
	]

	"system" [
		shape = "record"
		label = "<f0> system | <FR> FR"
	]

	"BSSGP_BVC_CT":BVC -> "BSSGP_CT":BVC
	"BSSGP_CT":BSCP -> "NS_CT":NS_SP

	"NS_CT":NSVC -> "NSVC_CT":NS_SP
	"NSVC_CT":NSCP -> "NS_Provider_FR_CT":NSE
	"NS_Provider_FR_CT":FR ->  "FR_Emulation_CT":CLIENT
	"NS_Provider_FR_CT":FR_PROC ->  "FR_Emulation_CT":PROC
	"FR_Emulation_CT":FR -> "system":FR
}