Okay, I'm struggling a bit here. I'm not all that good with Terminal and sorting out network issues using it but I've managed to scrape by so far.

Without using Internet Sharing (because controlling that via Terminal as per my question here doesn't actually seem to work in Yosemite) how can I share my internet connection from one interface (lets say en0) to another (again, lets say en1)?

I kind of understand that Internet Sharing creates a bridge (usually called bridge100) and then uses bootpd (I think) to establish a DHCP server and NAT to route all traffic from 192.168.2.xxx (which is the bridged network) through to your primary network.

How can I get the same result without using the Sharing pref pane?


Question: Reuse part of a path
Answer: This is an incomplete answer  or more exactly an answer with some disadvantages. You need to find the length manually of the path between (n) and (s), and if you change the scaling argument, you need to find another length. The main problem is to calculate the length automatically. I think it's possible with the decoration librarybut I don't know enough this library to find a solution.  A macro to calculate the length of a path between two nodes would be interesting.

Update of the first code In some simple case, it's possible to calculate the length.

\documentclass{article}
\usepackage{tikz} 
\usetikzlibrary{decorations} 

\makeatletter
\newif\ifpgfextractpointsreseonmoveto

\pgfextractpointsreseonmovetotrue%
\def\calclength#1{{
    \pgf@decorate@parsesoftpath#1\parsedpath
    \xdef\length{\pgf@decorate@totalpathlength}
    \parsedpath
}} 

\makeatother  
\tikzset{
  solid part/.style={%
  postaction={solid, decorate, draw,ultra thick,
  decoration={
             moveto,
             pre=curveto, 
             post=moveto, 
             pre length=#1,
             post length=#1}}
    }
}    

\begin{document}


\begin{tikzpicture}[scale=2]
   \path[save path=\tmppath] (0,0) -- (6,4); 
    \calclength{\tmppath}   
    \draw[dotted,solid part=.5*\length] (0,0) -- (6,4); 
\end{tikzpicture}   

\begin{tikzpicture}[scale=2]
   \path[save path=\tmppath] (0,0) to[out=0,in=-90] (6,4); 
    \calclength{\tmppath}   
    \draw[dotted,solid part=.5*\length] (0,0) to[out=0,in=-90] (6,4); 
\end{tikzpicture}  
\end{document}    




Update to get the correct arrow with edgeand loop but my code is perhaps not sure in some conditions (I need to test)

\documentclass{article}
\usepackage{tikz} 
\usetikzlibrary{decorations} 

\makeatletter
\newif\ifpgfextractpointsreseonmoveto

\pgfextractpointsreseonmovetotrue%

\def\pgf@extractprocessorsecond#1{%
 \ifx#1\pgfsyssoftpath@movetotoken
   \ifpgfextractpointsreseonmoveto
     \let\pgf@next=\pgf@extractprocessorfirst%
   \else%
     \let\pgf@next=\pgf@@extractprocessorsecond%
   \fi%
 \else%
   \let\pgf@next=\pgf@@extractprocessorsecond%
 \fi%
 \pgf@next#1%
}

\tikzset{
 adjust arrow/.code={%
   \csname if#1\endcsname%
     \pgfextractpointsreseonmovetofalse%
   \else%
     \pgfextractpointsreseonmovetotrue%
   \fi},
 adjust arrow/.default=true,
}

\makeatother  

\begin{document}

\tikzset{
  solid part/.style={%
  postaction={solid, decorate, draw,adjust arrow,
  decoration={
moveto,
             pre=curveto, 
             post=moveto, 
             pre length=#1,
             post length=#1}}
    }
}

\begin{tikzpicture}[scale=20,&gt;=latex]
   \draw[thick] node (n) [circle,fill] {} 
         edge [&lt;-,dotted,solid part=28mm,loop above] ();
\end{tikzpicture}

\end{document}




Update N°3) The best solution for the moment. I try to use \usetikzlibrary{decorations.markings}but I need to work with to and not edge. To avoid the arrow with loop, I redefine \tikzstyle{every loop}= [shorten &gt;=1pt]  

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations} 
\usetikzlibrary{decorations.markings}
\begin{document}

\pgfkeys{
/pgf/decoration/.cd,
pre fraction/.style={pre length=#1*\pgfmetadecoratedpathlength},
post fraction/.style={post length=#1*\pgfmetadecoratedpathlength}
}

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,2);

\draw [  
decoration={ 
curveto,
pre=moveto, pre fraction=0,
post=moveto, post fraction=0.3}, decorate, red, ultra thick] (A) to[out=0,in=-90](B);

\draw [decoration={curveto,
                   pre=moveto, pre fraction=0.7,
                   post=moveto, post fraction=0},%
       decorate, blue, ultra thick,dotted] (A) to[out=0,in=-90](B); 

\path [  
decoration={ 
     markings, mark=at position .7  with {\arrow[red,line width=2pt]{&gt;}}},  
     decorate  ] (A) to[out=0,in=-90](B);         
\end{tikzpicture} 

\begin{tikzpicture}[scale=20,&gt;=latex]  
 \tikzstyle{every loop}= [shorten &gt;=1pt]  
 \node[draw,circle,minimum size=2pt,fill](s){};  
\draw[decoration={curveto,
                  pre=moveto, 
                  pre fraction=0,
                  post=moveto, 
                  post fraction=0.7}, 
      decorate,red, ultra thick] (s)  to[loop above] ();

\draw[decoration={ 
curveto,
pre=moveto, pre fraction=0.33,post=moveto, post fraction=0},
 decorate, blue,dotted, ultra thick] node[]{}  to[loop above] (); 

\path [decoration={markings,
       mark=at position .32  with {\arrow[red,line width=2pt]{&gt;}}},
       decorate  ]  (s)  to [loop above] ();                    
\end{tikzpicture}       
\end{document}




Update final With edge we need to add  decorate in the option of `edge``

% remove the arrow from the style of every loop
\tikzset{every loop/.style={looseness=10}}
\begin{tikzpicture}[scale=5] 
% draw the loop
 \draw node (n) [circle,draw] {A} edge [dashed,loop above]   ();  
% first decoration : solid line
\path [ decoration={ curveto,
                     pre=moveto, 
                     pre fraction=0,
                     post=moveto, 
                     post fraction=0.9},red,thick]%
                      (n) edge[decorate,loop above]();  
% second decoration the arrow 
 \path[&gt;=latex,decoration={  markings, 
                     mark=at position .12  with {\arrow[red,thick]{&gt;}}}]%
                      (n) edge[decorate,loop above]  ();

\end{tikzpicture}