FEATURE new session context checking and creation

TODO get schemas using <get-schema>
diff --git a/src/session_p.h b/src/session_p.h
index dd80974..c5eee5b 100644
--- a/src/session_p.h
+++ b/src/session_p.h
@@ -179,6 +179,43 @@
 };
 
 /**
+ * @brief Fill libyang context in \p session. Context models are based on the stored session
+ *        capabilities. If the server does not support \<get-schema\>, the models are searched
+ *        for in the directory set using nc_schema_searchpath().
+ *
+ * @param[in] session Session to create the context for.
+ * @return 0 on success, non-zero on failure.
+ */
+int nc_ctx_fill(struct nc_session *session);
+
+/**
+ * @brief Check whether the libyang context in \p session is suitable for NETCONF use
+ *        meaning whether the ietf-netconf model is loaded.
+ *
+ * @param[in] session Session with the capabilities to be supported if loading ietf-netconf
+ *                    explicitly.
+ * @return 0 on success, non-zero on failure.
+ */
+int nc_ctx_check(struct nc_session *session);
+
+/**
+ * @brief Create and connect a socket.
+ *
+ * @param[in] host Hostname to connect to.
+ * @param[in] port Port to connect on.
+ * @return Connected socket or -1 on error.
+ */
+int nc_connect_getsocket(const char *host, unsigned short port);
+
+/**
+ * @brief Perform NETCONF handshake on \p session.
+ *
+ * @param[in] session NETCONF session to use.
+ * @return 0 on success, non-zero on failure.
+ */
+int nc_handshake(struct nc_session *session);
+
+/**
  * Functions
  * - io.c
  */