| 
					
				 | 
			
			
				@@ -77,6 +77,62 @@ public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	~Network(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Apply filters to an outgoing packet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * This applies filters from our network config and, if that doesn't match, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * our capabilities in ascending order of capability ID. If there is a match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * certain actions may be taken such as pushing credentials to ztDest and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * sending a copy of the packet to a TEE or REDIRECT target. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param ztSource Source ZeroTier address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param ztDest Destination ZeroTier address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param macSource Ethernet layer source address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param macDest Ethernet layer destination address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param frameData Ethernet frame data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param frameLen Ethernet frame payload length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param etherType 16-bit ethernet type ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param vlanId 16-bit VLAN ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @return True if packet should be sent to destination peer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bool filterOutgoingPacket( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const Address &ztSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const Address &ztDest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const MAC &macSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const MAC &macDest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const uint8_t *frameData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const unsigned int frameLen, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const unsigned int etherType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const unsigned int vlanId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Apply filters to an incoming packet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * This applies filters from our network config and, if that doesn't match, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * the peer's capabilities in ascending order of capability ID. If there is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * a match certain actions may be taken such as sending a copy of the packet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * to a TEE or REDIRECT target. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param ztSource Source Peer (to save an extra lookup) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param ztDest Destination ZeroTier address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param macSource Ethernet layer source address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param macDest Ethernet layer destination address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param frameData Ethernet frame data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param frameLen Ethernet frame payload length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param etherType 16-bit ethernet type ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param vlanId 16-bit VLAN ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @return True if packet should be accepted locally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bool filterIncomingPacket( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const SharedPtr<Peer> &ztSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const Address &ztDest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const MAC &macSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const MAC &macDest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const uint8_t *frameData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const unsigned int frameLen, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const unsigned int etherType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const unsigned int vlanId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return Network ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 |