public static ForwardingSender CreateInstance(object node_ctx, string uri) {
Node n = (Node)node_ctx;
string fw_scheme; //Should be "fw"
IDictionary<string, string> kvpairs = SenderFactory.DecodeUri(uri, out fw_scheme);
Address forwarder = AddressParser.Parse("brunet:node:" + kvpairs["relay"]);
ushort init_option = AHHeader.Options.StringToUShort(kvpairs["init_mode"]);
Address target = AddressParser.Parse("brunet:node:" + kvpairs["dest"]);
short ttl = (short) Int16.Parse(kvpairs["ttl"]);
ushort option = AHHeader.Options.StringToUShort(kvpairs["mode"]);
//Console.WriteLine("{0}, {1}, {2}, {3}, {4}", forwarder, init_option, target, ttl, option);
return new ForwardingSender(n, forwarder, init_option, target, ttl, option);
}