using IFS.Gateway; using PcapDotNet.Packets; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IFS.Transport { /// /// IPupPacketInterface provides an abstraction over a transport (Ethernet, IP, Carrier Pigeon) /// which can provide encapsulation for PUPs. /// public interface IPupPacketInterface { /// /// Sends the given PUP over the transport. /// /// void Send(PUP p); /// /// Registers a callback (into the router) to be invoked on receipt of a PUP. /// /// void RegisterRouterCallback(RoutePupCallback callback); /// /// Shuts down the interface. /// void Shutdown(); } /// /// IRawPacketInterface provides an abstraction over a transport (Ethernet, IP, Carrier Pigeon) /// which can provide encapsulation for raw Ethernet frames. /// /// For the time being, this exists only to provide support for BreathOfLife packets (the only non-PUP /// Ethernet Packet the IFS suite deals with). This only requires being able to send packets, so no /// receive is implemented. /// /// Note also that no routing will be provided for raw packets; they are sent to the local 'net only. /// public interface IRawPacketInterface { /// /// Sends the specified data over the transport. /// /// /// /// /// void Send(byte[] data, byte source, byte destination, ushort frameType); } }